Правильный способ получения поля longint из таблицы SQL Server в Delphi 5 - PullRequest
0 голосов
/ 22 февраля 2011

У меня есть поле со значением -7590730850027557904 в SQL Server 2005, и я извлекаю его через ADO в Delphi 5, но я получил 7590730850027557904 - отрицательный знак был опущен.Как правильно извлечь значения longint из SQL Server в Delphi 5?

Вот мой код

  with DataSet do
  begin
    Connection := Conn;
    CommandText := 'SELECT * FROM CUSTOMERSLIST';
    Open;
  end;
  ShowMessage(DataSet.FieldByName('SID').AsString);

Ответы [ 2 ]

0 голосов
/ 25 февраля 2011

Спасибо моему коллеге. Решение состоит в том, чтобы преобразовать bigint в строку при выполнении запроса из базы данных.

 with DataSet do
  begin
    Connection := Conn;
    CommandText := 'SELECT CASST(SID AS VARCHAR(50)) AS SID FROM CUSTOMERSLIST';
    Open;
  end;
  ShowMessage(DataSet.FieldByName('SID').AsString);
0 голосов
/ 22 февраля 2011

SQL Server имеет тип bigint .
Это от -2 ^ 63 (-9,223,372,036,854,775,808) до 2 ^ 63-1 (9,223,372,036,854,775,807).
Эквивалент Int64 в Delphi

...