![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как Variant привести к int64 ? [D5]
lmr © (2002-09-02 16:18:00)и\или наоборот собственно
lmr (2002-09-03 08:27:00) [1]вот что написано в help :
TBCDField Real number with a fixed number of decimal places, accurate to 18 digits. Range depends on the number of decimal places.
а поле есть такое NUMERIC(19,0)
lmr (2002-09-02 18:28:00) [2]Что за тип BCD ?
dbgrid его не переваривает - overflov говорит
lmr (2002-09-02 18:19:00) [3]Ща проверю - база - Галактика-Pervasive-OBDC
Игорь Шевченко (2002-09-02 18:16:00) [4]lmr (02.09.02 18:08)
А какая база ? Может, в настройках BDE сказать EnableBCD ?
lmr (2002-09-02 18:09:00) [5]а Int64(*.asVariant) не прёт
lmr (2002-09-02 18:08:00) [6]Поле базы есть NUMERIC(19) - оно получается строкой - 1.23456789123456E19 . floatom тоже а реальное значение -
1234567890123456789 вот как ни возьму его - он всяко разно 789 откидывает
Игорь Шевченко (2002-09-02 18:03:00) [7]Я, честно говоря, не понимаю, в чем задача состоит.
Если int64 в строку или наоборот, то это IntToStr/StrToInt.
Если передать, как вариант, то посмотреть в исходниках DB.pas тот метод, который я указал...
lmr (2002-09-02 17:48:00) [8]y:int64
поле это в FieldDefs вообще нет а он мне одно что -
что-то там Ошибка : LargeInt , оно Float должно быть и всё тут
lmr (2002-09-02 17:42:00) [9]Вроде всё ясно, ноо
пишу уже час одно и тоже , а именно :
Table1.Close;
T := TLargeintField.Create(Self);
T.FieldName := "NREC";
T.Name := Table1.Name+T.FieldName;
T.DataSet := Table1;
Table1.FieldDefs.UpDate;
Table1.Open;
y:=T.AsLargeInt;
Edit1.text:=Format("%X , %D",[y,y]);
Игорь Шевченко (2002-09-02 16:32:00) [10]RTFS: (DB.PAS) TLargeIntField.GetAsVariant - int64 в Variant
Variant имеет тип VT_DECIMAL