![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ошибка в BDE [D5, D7, MSSQL, SYBASE]
neXt © (2003-04-21 17:54:00)Есть запрос:
select round(9.9987, 2)
Если исполнять его из TQuery, то вернётся "General SQL error". Приложение не работающее через BDE нормально возвращает результат.
Проблема в том что при округлении увеличивается разряд целой части числа. Т.е. если вместо 9.9987 округлять число 9.8987, то трабла не случается.
Ситуация лечится примерно тысячью способами, например, явным определением типа возвращаемого значения:
select convert(float, round(9.9987, 2))
Если кто знает как это дело решить средствами настроек BDE - подскажите.
Сервер не важен, я пробовал на MSSQL 6.5, MSSQL 2000 и SYBASE 12
Версия BDE: "BDE Update 5.1.1", пробовал с BDE от Delphi7 - та же хрень.
neXt (2003-04-22 09:44:00) [1]
> Тебе надо, чтобы BDE напрямую транслировало запросы, без
> анализа и разбора. Для этого в свойствах алиаса (драйвера)
> надо указать SQLQRYMODE=Server.
Так и стоит, не помогает, можете проверить.
Стоит и у алиаса и в Config->Drivers->Native - это вариант по умолчанию.
Johnmen (2003-04-22 09:24:00) [2]Тебе надо, чтобы BDE напрямую транслировало запросы, без анализа и разбора. Для этого в свойствах алиаса (драйвера) надо указать SQLQRYMODE=Server.
neXt (2003-04-22 09:06:00) [3]> Нет такой фукции в Local SQL
И что из этого следует?
> А если поставить Local в false?
Пожалуйста, подробней, я не понял о чём идёт речь.
Mike Kouzmine (2003-04-21 18:27:00) [4]А если поставить Local в false?
Anatoly Podgoretsky (2003-04-21 18:13:00) [5]Нет такой фукции в Local SQL
neXt (2003-04-21 18:10:00) [6]Да, и ещё.
Если работать через ADO (TADOQuery) то проблемы нет.