Числа формата Bcd в Запросах FireBird

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Числа формата Bcd в Запросах FireBird

Сообщение nDenis » 27.09.2011 11:25:29

При подключении к базе данных и выполнения запроса некорректно выводяться значения BCD поля
т.е.
Есть FireBird 2.1 установленных в промышленном маштабе
Lazurus V0.9.30
используем стандартные компаненты
IBConnection1
SQLQuery1
SQLQuery1.sql.text:='select sum(pole1) as SMP1 from Tabel1 GROUP BY Tcode ';
есть поле суммы - SMP1 получает статус поля ftBCD и совсем не корректно отображает в данном поле / хотя Borland Дельфи 7 с тем же запросом все делает как надо
в суммах Дельфи число 4
в суммах из под лазуруса 454564564564564,5544
nDenis
незнакомец
 
Сообщения: 1
Зарегистрирован: 27.09.2011 11:18:03

Re: Числа формата Bcd в Запросах FireBird

Сообщение stikriz » 27.09.2011 17:29:00

Компоненты доступа написаны неправильно.
FireBird тут никак не при чем вообще, т.к. он слухом не слыхивал о неком BCD.
Когда данные передаются в компонент, то есть структура, где хранится тип данных реальный, пришедший с сервера.
А когда данные надо поместить из этого типа в "филду", то надо преобразовать. Для этого пишут методы, типа GetAsBCD для совместимых типов филд.
Кстати, лучше (хоть и не возброняется) не назначать тип филде, а использовать именно тот, который создается при создании филд автоматом.
Аватара пользователя
stikriz
энтузиаст
 
Сообщения: 612
Зарегистрирован: 15.03.2006 09:37:47


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 235

Рейтинг@Mail.ru
cron