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

Вниз

firebird - эмулялия логических и денежных типов   Найти похожие ветки 

 
помогите новичку   (2010-11-22 16:46) [0]

Как правильнее эмулировать логические переменные в FireBird:
я использовал 2 варианта: smalint (=0 or =1) и VarChar(1) (="T" or ="F").
И про деньги: попробовал DECIMAL(15,2), но он в гриде отображается как обычное дробное число (даже если в свойствах Field"а указать currency=true). Если сделать float или double, то  приписывает к значению "р.", но данные из decimal в float не конвертируются... Как методически правильнее "деньги хранить"?
Да, кстати чем  DECIMAL(15,2) и NUMERIC(15,2) отличаются - в мануале абсолютно одинаковые описания...


 
Виталий Панасенко   (2010-11-22 17:32) [1]

смотря, какие компоненты доступа.. FIBPLus умеют эмулировать логические поля.Т.е. объявляешь домен типа SMALLINT, в имени ОБЯЗАТЕЛЬНО должно присутствовать слово BOOLEAN(например, TBOOLEAN), фибы генерят для такого описания объект - логическое поле. И с ним можно работать, как с обычным логическим полем. А на счет денег - настрой DisplayFormat для  нужных полей


 
Inovet ©   (2010-11-22 17:32) [2]

В dialect 3, насколько помню, numeric в integer храниться

numeric(18,2) в int64


 
помогите новичку   (2010-11-22 17:52) [3]


> FIBPLus умеют эмулировать логические поля.Т.е. объявляешь
> домен типа SMALLINT, в имени ОБЯЗАТЕЛЬНО должно присутствовать
> слово BOOLEAN(например, TBOOLEAN)

Ок, полезная инфа. Я назвал TBOOL, чуть не дотянул, но в принципе в DBGridEh есть мулька - Checked + KeyValues, которые прекрасно эмулируют любые (видимо) поля с двумя возможными значениями.


> на счет денег - настрой DisplayFormat

уловил, сделаю. Но с методической стороны есть ли общие рекомендации типа, деньги лучше хранить в ..., т.к. ...? Или сложившаяся практика например. Или же кто во что горазд то и пишет?


 
Виталий Панасенко   (2010-11-22 17:57) [4]

только не float/double,. т.к. там числа хранятся в плавающем формате. а вот NUMERIC/DECIMAL - до 18 знаков хранятся в формате integer/int64.. т.е. соблюдается точность при расчетах и нету "хвостов"...


 
помогите новичку   (2010-11-22 18:09) [5]


> только не float/double,. т.к. там числа хранятся в плавающем
> формате. а вот NUMERIC/DECIMAL - до 18 знаков хранятся в
> формате integer/int64.. т.е. соблюдается точность при расчетах
> и нету "хвостов"...

Спасибо, теперь полная ясность!


 
Inovet ©   (2010-11-22 19:05) [6]

> [5] помогите новичку   (22.11.10 18:09)
> Спасибо, теперь полная ясность!

Так у тебя база в диалект 1, наверно?


 
Petr V. Abramov ©   (2010-11-23 11:49) [7]


> Если сделать float или double, то  приписывает к значению
> "р."

а если винда окажется английская, то припишет $
вот заказчик порадуется :)


 
помогите новичку   (2010-11-23 13:19) [8]


> Так у тебя база в диалект 1

когда создавал, 3 выбирал - уточню...


> а если винда окажется английская, то припишет $вот заказчик
> порадуется :)

гы, точно... :)  нет, я DisplayFormat уже заюзал...



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

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

Наверх




Память: 0.48 MB
Время: 0.005 c
3-1290176187
von
2010-11-19 17:16
2013.06.23
некорректный вывод данных


15-1360734914
fromthemoon
2013-02-13 09:55
2013.06.23
На чем писать под iOS/Андроид


15-1360878208
Demo
2013-02-15 01:43
2013.06.23
Выбор тестового сервера


15-1360873802
Юрий
2013-02-15 00:30
2013.06.23
С днем рождения ! 15 февраля 2013 пятница


15-1360737474
brother
2013-02-13 10:37
2013.06.23
Оцените адекватность цены