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