![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблема с использованием BCD полей [D7, MSSQL]
GAndrei © (2004-03-23 12:30:00)Уважаемые мастера, помогите пожалуйста решить такую проблему.
Доступ к базе организован через BDE
Включено свойство Enabled BCD
в базе существует поле numeric(10,6)
но при выполнени запроса прилетает число точность которого 4
Возможно ли как то задатть в настройках BDE точность BCD полей?
GAndrei (2004-03-24 17:51:00) [1]2000 sp3
но здесь проблема не с SQl Он то как раз очень акуратно работает
Я заметил такую особенность
В делфи нет чисел с фиксированой точкой, есть только тип float или Currency. Если запрос возвращает число с фиксированой точкой (Numeric), то делфа,BDE его интерпритирует как float (в случае если BCD отключено) или же как BCD (в этом случае точность не выше 4). Эта интерпритация приводит к "странному" результату
Например, в гриде вводится число 10.1 - оно тут же "превращается" в 10.0999.
Нашел такой вариант решения проблемы
Если на сервере хранится число с фиксированой точкой я выбираю это число таким образом: round(cast(Тable.Kurs as float),6,0) as Kurs
После этого проблемы исчезли.
stas (2004-03-24 13:43:00) [2]А какая версия MSSQL ?
GAndrei (2004-03-24 12:47:00) [3]нашел ссылочку http://www.rxlib.ru/faqs/faqd_en/17708.html
Здесь сказано что решением проблемы может быть использование FMTBCD полей. Но как их использовать непонятно. Если кто-то знает решение помогите пожалуйста