Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / The decimal field's precision is too small to accept the numeric you attempted to add. / 10 сообщений из 10, страница 1 из 1
20.04.2004, 16:31:53
    #32488192
Magnus23
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
The decimal field's precision is too small to accept the numeric you attempted to add.
День добрый уважаемые. Если у кого есть желание и время, помогите разобраться с проблемой:

Собственно все до предела просто , потому и непонятно.
Открываю рекордсет, выборкой из акцеса.

Код: plaintext
1.
2.
3.
4.
5.
select Norma_Ref as Referencia,Titulo_PT,Substituida, 
Norma_Numero,Norma_parte, Norma_Subparte,Norma_ANO, iif(isnull
(Tipo_CT) ,' ',tipo_ct +  iif(isnull(CT_codigo),' ', ' - ' + ct_codigo)) AS [Comisão 
Tecnica],Catnormas.Proc_ID,Tipo_CT  
from (Catnormas ) 
Where  ID_stat='1' order by Norma_Ref


Вылетает сабжевая ошибка. В самом акцесе батч отрабатывает нормально.
При чем если уберу Order by то и в VB нормально. Поле по которому делается ордер - Text.

MDAC 2.7 VB6 SP5 вин 2к даже Jet4.0 Sp8.
Коннект напрямую к джету. Похоже на поврежденные данные но не уверен. Базу клиенты прислали, по их словам конвертили из Оракла...
Пытался выловить асинхронным фетчем но вываливается сразу же.

Ничего не понимаю. Во всех источниках идет рефер на проблему с данным или с джетом. Джет новый, данные в акцесе тоже вылазят без проблем. Вылетает имеено на этой стороне. Могло бы быть несовпадение типов, но ведь без сортировки работает!

Вообщем был бы благодарен за любые наводки, если у кого было подобное.

Спасибо.



Magnus
...
Рейтинг: 0 / 0
20.04.2004, 16:49:49
    #32488250
Victosha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
The decimal field's precision is too small to accept the numeric you attempted to add.
какой тип данных в таблице, у поля , которое производится попытка
привести к cdec ?
строка наверно?
Если да - то это СТАНДАРТНЫЕ ораклово-VB-шные грабли.
VB - cdec - 12 байт, 28 дес. знаков макс.
Oracle - точность до 80 знаков.
...
Рейтинг: 0 / 0
20.04.2004, 17:26:54
    #32488401
Magnus23
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
The decimal field's precision is too small to accept the numeric you attempted to add.
Сделал Compact & Repair- заработало.

какой тип данных в таблице, у поля , которое производится попытка
привести к cdec ?

Я ничего подобногго не делаю, весь запрос привед выше, из чего конвертили в Оракле я не знаю, та база мне недоступна. Вероятно все таки были поврежденные данные.

Поля в существующей таблице Number, text, memo, DateTime.

но как это связано с order by по текстовому полю?


Magnus
...
Рейтинг: 0 / 0
20.04.2004, 17:46:00
    #32488450
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
The decimal field's precision is too small to accept the numeric you attempted to add.
Сделал Compact & Repair- заработало
Жалко что заработало а то похоже на

Knowledge Base ACC2000: Scaling Errors When You Query Linked Tables
...
Рейтинг: 0 / 0
20.04.2004, 18:10:32
    #32488508
Magnus23
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
The decimal field's precision is too small to accept the numeric you attempted to add.
2 Senin Viktor
мимо :)
Я ж в начале писал jet Sp8 - специально установил, после прочтения майкрософтовских сзьездов на эту тему :).
Приведенный кстати тоже смотрел. После его установки все осталось как прежде. Не понятно. Но вопрос все равно открыт, потому как клиент для базы будет распространятся на диске и может импортировать саму базу из различных источников. Т.е. если они ее и дальше продолжат так же конвертить, та же проблема может выскочить в новых версиях.


Magnus
...
Рейтинг: 0 / 0
20.04.2004, 22:56:59
    #32488717
Flare
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
The decimal field's precision is too small to accept the numeric you attempted to add.
Непонятно. Надо "ковырять на месте" имея под рукой Оракл именно той верии, что у клиента, imho. Вопрос КАК они из оракла базу конвертят, все же.
...
Рейтинг: 0 / 0
20.04.2004, 23:57:46
    #32488746
Magnus23
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
The decimal field's precision is too small to accept the numeric you attempted to add.
Доступа к той базе пока не имею, но вопрос уже поднял. Данные они вероятно импортируют каким-то визардом. На следующем совещании буду брать за глотки чтоб меняли процесс. В принципе чего то подобного я ожидал. В предыдущих версиях базы были "явно" битые данные, которые выловил и исправил руками. Сьехали на баги и глюки при конвертировании. Прислали новую базу, по началу все четко было, а как дошло до использования некоторых уже протестированных фич - на тебе радость. Что ж мне теперь, после каждого обновления весь клиент заново тестировать?!?(риторический вопрос).
Спецы у них там просто супер судя по структуре базы, база чисто для чтения(каталог), ну денормализовать ее да и все. Они вроде об этом тоже "где то читали" новидимо обламались на середине процесса, и теперь 'то кривое нечто уже не изменить. И бюджет собсно копеечный, не покрутишься.

Придется наверное встраивать нечто вроде "попытки лечения кривой базы".


Вообщем ковыряю пока.

Спасибо всем за участие.

ЗЫ Еще какие нубудь идеи?

Magnus
...
Рейтинг: 0 / 0
21.04.2004, 09:39:31
    #32488925
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
The decimal field's precision is too small to accept the numeric you attempted to add.
ЗЫ Еще какие нубудь идеи?

Да ты их и сам знаешь: либо переписывать драйвера доступа либо свою программу :)

А так внимательно посмотри на саму таблицу - у акеса бывало про конвертирование записывалось в Размер, Формат, Число знаков и на вкладке Подстановка разная муть. Возможно что-то с индексом, возможно в Text'e какая-то муть. А в режиме просмотра таблицы сортируется/фильтруется нормально?
...
Рейтинг: 0 / 0
21.04.2004, 09:52:00
    #32488947
m_a_r_i_n_a
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
The decimal field's precision is too small to accept the numeric you attempted to add.
у меня был случай нестандартного поведения данных при выполнении выборки после подъема данных в Visual Foxpro, и знаешь что помогло? ... после создания структуры таблицы в самом Visual Foxpro (не копирования, а именно "ручками"), а потом перекачивания данных в созданную структуру-все получилось
...
Рейтинг: 0 / 0
21.04.2004, 17:47:30
    #32490488
Magnus23
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
The decimal field's precision is too small to accept the numeric you attempted to add.
2 Senin Viktor
Таблицу всю еще вначале обнюхал, все нормально вроде.

2 m_a_r_i_n_a
К процессу конвертации я доступа не имею, это клиенты делают, вопрос то я поднял, но как он решится это уж...


Magnus
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / The decimal field's precision is too small to accept the numeric you attempted to add. / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]