Текущий архив: 2004.12.05;
Скачать: CL | DM;
ВнизПроблема с JetSQL Найти похожие ветки
← →
Victor! © (2004-11-03 11:18) [0]Использую ADOQuery и JetSQL (таблицы в Paradox), выполняю запрос содержащий строку "Avg(Param/99.8)" (запрос идет к часовой базе данных и группируется в сутки).
И возникает странная проблема, вместо значения появляется "BCD Overflow", а колонка DBGrid`a растягивается на всю ширину. При чем на другом компе, значение выводится правильно, остается только глюк с колонкой DBGrid`a. Если выполнять с "Avg(Param/99)", или просто "Param/99.8" без группировки, то все нормально. В чем проблема? Может в JetSQL есть какие-то настройки.
← →
sniknik © (2004-11-03 11:31) [1]проверь установку BDE на обоих компах. где работает и где нет.
(просто проверить одно предположение)
> остается только глюк с колонкой DBGrid`a
а вот это не глюк, вычисляемые поля со строковыми параметрами получают тип - char(255), а раз у тебя поле BCD то так правильно. (по большому счету BCD это число записанное в строке)
просто сам устанавливай нужную длинну у поля.
← →
Victor! © (2004-11-04 11:01) [2]А что именно посмотреть-то. (Самое интересное, что есть комп на котором с этими вычислениями вообще ни каких глюков нет)
← →
sniknik © (2004-11-04 11:39) [3]> А что именно посмотреть-то.
есть ли оно вообще и версию того что есть.
данные надеюсь берутся всеми одни и те же?
просто jet при установленности BDE использует его для парадокса, и если с одними и теми же данными в одном случае ошибка в другом без проблем, то надо сравнивать чем они отличаются. (где BDE не установлено используется внутренняя урезаная его копия)
← →
Victor! © (2004-11-04 14:33) [4]BDE то одной версии, может Jet разной. А вообще, что за BCD. Если в ADOQuery установить EnableBCD = false, то в XP проблема исчезает. Правда в 2000, все равно ошибка.
← →
sniknik © (2004-11-04 14:55) [5]> может Jet разной.
вот и обнови до последней версии.
> Если в ADOQuery установить EnableBCD = false
то BCD поле преобразуется к формату с плаваюшей запятой. (екстендед вроде бы)
кстати показательно, значит ошибка на получении результата в программу а не jet-те на вычислении.
проверь, строкой проходит?
SELECT CStr(Avg(Param/99)) FROM Table
← →
sniknik © (2004-11-04 14:56) [6]> А вообще, что за BCD.
+ F1
← →
Victor! © (2004-11-04 17:14) [7]Вопрос 1: как обновить JET (программу предполагается ставить от 98 и выше, как это корректно зделать при инсталяции)
Второе: ошибка возникает в случае: ADOQuery.Fields[i].AsЧтоУгодно раз в XP это работает а в 2000 нет, значит все таки JET плохо считает.
(Можно ли что нибудь сделать чтобы в связке ADOQuery -> DataSource -> DBGrid , DBGrid не вызывал ошибку при перерисовке)
← →
msguns © (2004-11-04 18:25) [8]Field.OnGetText ?
← →
Victor! © (2004-11-05 12:13) [9]А где это такое событие?
← →
sniknik © (2004-11-05 12:22) [10]ADOQuery.Fields[i].OnGetText
← →
Victor! © (2004-11-05 16:48) [11]Дело чуть-чуть подладилось, перенес курсор на сервер ошибки "BCD Overflow" вроде исчезли. Однако на компе (2000), на котором BDE не инсталлировано, а просто скопировано и прописано в реестр, выдает ошибку "Invslid field size", опять же, только в случае использования агрегативных функций. Т.е. вопрос: вот если нет инсталлятора BDE, что и куда еще надо прописать чтобы оно корректно стало.
← →
Victor! © (2004-11-08 11:12) [12]Кто-нибудь подскажет?
← →
sniknik © (2004-11-08 11:22) [13]а сам вывод сделать не можеш?
изначально же грешил на BDE (разницу в установках), ты сказал BDE одинаковый... (обманул практически в свете последнего топика)...
в итоге ткнулся в ошибку на разнице.
перечитай > sniknik © (04.11.04 11:39) [3]
как используется BDE jet-ом... неясно еще? как по твоему он будет использовать недоустановленную (как еще назвать > Victor! © (05.11.04 16:48) [11] ?) копию у которой только название и присутствует?
ставь нормально.
← →
Victor! © (2004-11-08 17:52) [14]А без исталлятора его никак не поставить, а то нет у меня исталятора
← →
sniknik © (2004-11-08 18:09) [15]значит не судьба.
Страницы: 1 вся ветка
Текущий архив: 2004.12.05;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.042 c