Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.11.27;
Скачать: CL | DM;

Вниз

поле NUMERIC(15, 5) не работатет с 5-ым знаком после запятой   Найти похожие ветки 

 
Михаил   (2003-11-06 10:06) [0]

Здраствуйте, мастера! База была написанна давно и работала около 2-х лет, но в связи с тем, что после зяпятой всегда было только 4 знака никто проблемы не замечал. После попытки записать в это поле число с пятью знаками после запятой, это число округлилось до четвертого знака...
InterBase 5.6 через BDE, enebled BCD=true
Хочется все исправить с наименьшими потерями...


 
Silver Alex ©   (2003-11-06 10:19) [1]

подробнее напиши, какими компонентами пользуешься (TAdoDataSet или TQuery), и тип этого поля(или параметра) в Delphi, если TBDCField то поробуй изменить его на TFloatField
напишешь что получилось :))


 
Johnmen ©   (2003-11-06 10:31) [2]

>После попытки записать ...

Как это делается ?

>число округлилось до четвертого знака

Это одна только видимость...:)


 
Михаил   (2003-11-06 10:42) [3]

использую TQuery... но думаю проблема тут совсем не в Delphi (пока), а в самом IB и BDE, т.к. данные округяются даже при непосредственном вводе из SQL explorer
при установки enebled BCD в false все знаки после запятой записываются, но боюсь что из-за этого попроут другие косяки с округлениями.


 
Silver Alex ©   (2003-11-06 10:50) [4]

все дело в BCD , у меня такая проблема была на MS SQL сервере.
Поменял тип параметра, попустило. Ну а с округлениями, так это классическая задача, вариантов немеряно :))


 
Romkin ©   (2003-11-06 10:54) [5]

Косяки у тебя прут, когда BCD включено. Сам попробуй
select cast(2/3 as numeric(15,2)) from rdb$database
из WISQL и в SQL explorer у которого Enable BCD=TRUE
Разницу чувствуешь?


 
Михаил   (2003-11-06 11:37) [6]

Romkin ©, при Enable BCD=TRUE
select cast(2/3 as numeric(15, 4)) дает 0,6666
а select cast(2/3 as numeric(15, 5)) дает 0,6667
фантастика! С чем это связано?
Проблема в том, что с этой базой работает не одна программа и не только моя. Боюсь что смена значения Enable BCD с TRUE на FALSE повлечет за собой переписывание кода. С меньшими затратами никак?


 
Romkin ©   (2003-11-06 11:46) [7]

Связано с неявным представлением в виде currency, а там точность 4 цифры. НАсчет других программ - в параметрах TDatabase можно прописать ENABLE BCD=TRUE (без лишних пробелов), перекроешь параметр в алиасе



Страницы: 1 вся ветка

Текущий архив: 2003.11.27;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.02 c
1-89896
Kacnep
2003-11-17 15:24
2003.11.27
Настройки в TTreeView зачем и как реализовать?


6-90043
Woolen
2003-09-27 16:04
2003.11.27
Сервер на базе TIdPOP3Server


1-89960
Ben
2003-11-17 17:51
2003.11.27
Есть ли у объекта определённое свойство?


7-90146
Spinx
2003-09-16 01:11
2003.11.27
Перенос Systray a в свое приложене


1-89837
td
2003-11-13 20:31
2003.11.27
WordApplication1.Selection.Collapse(Direction)