-
Как правильнее эмулировать логические переменные в 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) отличаются - в мануале абсолютно одинаковые описания...
-
смотря, какие компоненты доступа.. FIBPLus умеют эмулировать логические поля.Т.е. объявляешь домен типа SMALLINT, в имени ОБЯЗАТЕЛЬНО должно присутствовать слово BOOLEAN(например, TBOOLEAN), фибы генерят для такого описания объект - логическое поле. И с ним можно работать, как с обычным логическим полем. А на счет денег - настрой DisplayFormat для нужных полей
-
В dialect 3, насколько помню, numeric в integer храниться
numeric(18,2) в int64
-
> FIBPLus умеют эмулировать логические поля.Т.е. объявляешь > домен типа SMALLINT, в имени ОБЯЗАТЕЛЬНО должно присутствовать > слово BOOLEAN(например, TBOOLEAN)
Ок, полезная инфа. Я назвал TBOOL, чуть не дотянул, но в принципе в DBGridEh есть мулька - Checked + KeyValues, которые прекрасно эмулируют любые (видимо) поля с двумя возможными значениями.
> на счет денег - настрой DisplayFormat
уловил, сделаю. Но с методической стороны есть ли общие рекомендации типа, деньги лучше хранить в ..., т.к. ...? Или сложившаяся практика например. Или же кто во что горазд то и пишет?
-
только не float/double,. т.к. там числа хранятся в плавающем формате. а вот NUMERIC/DECIMAL - до 18 знаков хранятся в формате integer/int64.. т.е. соблюдается точность при расчетах и нету "хвостов"...
-
> только не float/double,. т.к. там числа хранятся в плавающем > формате. а вот NUMERIC/DECIMAL - до 18 знаков хранятся в > формате integer/int64.. т.е. соблюдается точность при расчетах > и нету "хвостов"...
Спасибо, теперь полная ясность!
-
> [5] помогите новичку (22.11.10 18:09) > Спасибо, теперь полная ясность!
Так у тебя база в диалект 1, наверно?
-
> Если сделать float или double, то приписывает к значению > 'р.'
а если винда окажется английская, то припишет $ вот заказчик порадуется :)
-
> Так у тебя база в диалект 1
когда создавал, 3 выбирал - уточню...
> а если винда окажется английская, то припишет $вот заказчик > порадуется :)
гы, точно... :) нет, я DisplayFormat уже заюзал...
|