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

Вниз

Не могу сохранить int64 в поле bigint   Найти похожие ветки 

 
Lbvf1   (2004-02-09 14:51) [0]

Не могу сохранить значение int64 в поле bigint


var i:int64;
....

// сохранение
q.ParamByName("p1").Value := i;
q.ExecSQL;
// записываю 1152921504606846976 (2^60)
// а там оказывается 1152921504606850000

// а чтение работает корректно
i := VarAsType(q.FieldByName("f1").AsVariant, varInt64);



записывать так вообще не получается, если значение больше 2^32
q.ParamByName("p1").Value :=
VarAsType(Variant(i), varInt64);


что делать?


 
VLAD-MAL   (2004-02-09 15:00) [1]

А какие компоненты доступа к данным? BDE не умеет, кажись... Что-то настраивать нужно...


 
Anatoly Podgoretsky ©   (2004-02-09 15:03) [2]

Чистый double 15 значащих цифр


 
ZrenBy ©   (2004-02-09 15:27) [3]

Ну не умеют TADOxxx 6-ой версии работать с bigint.
Спасибо большое Borlandy

Извратиться можно так.

var i : Int64;
j : Integer;
v : Variant;
begin
i := -1234567890987654321;
v := VarArrayCreate([0,7],varByte);

for j:=0 to 7 do v[j] := PByte( Integer(@i)+7-j )^;

ADOQuery2.Parameters.ParamByName("A").Value := 3;
ADOQuery2.Parameters.ParamByName("M").Value := v;
ADOQuery2.ExecSQL;

M - DataType = ftBytes
Size = 8


 
Lbvf1   (2004-02-09 16:48) [4]

q.ParamByName("p1").Value := inttostr(i);
- СРАБОТАЛО!



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

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

Наверх




Память: 0.47 MB
Время: 0.016 c
7-12563
pumba
2003-12-07 09:12
2004.03.05
Как закрыть запрещенное приложение?


3-12284
bespasian
2004-02-06 17:20
2004.03.05
Изменить цвет строки в DBGrid.


1-12383
Talan
2004-02-25 00:24
2004.03.05
Создание объекта


1-12439
Алексей
2004-02-25 12:50
2004.03.05
ввод числа форматированный, извращённый. как??


1-12410
Plt
2004-02-23 13:16
2004.03.05
TreeView