![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
firebird - эмулялия логических и денежных типов
помогите новичку © (2010-11-22 16:46:00)Как правильнее эмулировать логические переменные в 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-23 13:19:00) [1]
> Так у тебя база в диалект 1
когда создавал, 3 выбирал - уточню...
> а если винда окажется английская, то припишет $вот заказчик
> порадуется :)
гы, точно... :) нет, я DisplayFormat уже заюзал...
Petr V. Abramov (2010-11-23 11:49:00) [2]
> Если сделать float или double, то приписывает к значению
> 'р.'
а если винда окажется английская, то припишет $
вот заказчик порадуется :)
Inovet (2010-11-22 19:05:00) [3]> [5] помогите новичку (22.11.10 18:09)
> Спасибо, теперь полная ясность!
Так у тебя база в диалект 1, наверно?
помогите новичку (2010-11-22 18:09:00) [4]
> только не float/double,. т.к. там числа хранятся в плавающем
> формате. а вот NUMERIC/DECIMAL - до 18 знаков хранятся в
> формате integer/int64.. т.е. соблюдается точность при расчетах
> и нету "хвостов"...
Спасибо, теперь полная ясность!
Виталий Панасенко (2010-11-22 17:57:00) [5]только не float/double,. т.к. там числа хранятся в плавающем формате. а вот NUMERIC/DECIMAL - до 18 знаков хранятся в формате integer/int64.. т.е. соблюдается точность при расчетах и нету "хвостов"...
помогите новичку (2010-11-22 17:52:00) [6]
> FIBPLus умеют эмулировать логические поля.Т.е. объявляешь
> домен типа SMALLINT, в имени ОБЯЗАТЕЛЬНО должно присутствовать
> слово BOOLEAN(например, TBOOLEAN)
Ок, полезная инфа. Я назвал TBOOL, чуть не дотянул, но в принципе в DBGridEh есть мулька - Checked + KeyValues, которые прекрасно эмулируют любые (видимо) поля с двумя возможными значениями.
> на счет денег - настрой DisplayFormat
уловил, сделаю. Но с методической стороны есть ли общие рекомендации типа, деньги лучше хранить в ..., т.к. ...? Или сложившаяся практика например. Или же кто во что горазд то и пишет?
Виталий Панасенко (2010-11-22 17:32:00) [7]смотря, какие компоненты доступа.. FIBPLus умеют эмулировать логические поля.Т.е. объявляешь домен типа SMALLINT, в имени ОБЯЗАТЕЛЬНО должно присутствовать слово BOOLEAN(например, TBOOLEAN), фибы генерят для такого описания объект - логическое поле. И с ним можно работать, как с обычным логическим полем. А на счет денег - настрой DisplayFormat для нужных полей
Inovet (2010-11-22 17:32:00) [8]В dialect 3, насколько помню, numeric в integer храниться
numeric(18,2) в int64