Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.11.27;
Скачать: [xml.tar.bz2];

Вниз

поле 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.009 c
6-90017
Данила
2003-10-01 22:00
2003.11.27
Webserver на Делфи


1-89861
johny
2003-11-16 09:41
2003.11.27
работа с WebBrowser


7-90140
VadimEagel
2003-09-16 01:54
2003.11.27
Как выключить монитор в TService


6-90020
SergP
2003-09-28 13:23
2003.11.27
Сокеты... ошибка 11001 и пр. Что с ними делать?


1-89883
Гег
2003-11-15 19:04
2003.11.27
Присвоение всяких данных





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский