【问题标题】:Correct way of retrieving a longint field from a SQL Server table in Delphi 5从 Delphi 5 中的 SQL Server 表中检索 longint 字段的正确方法
【发布时间】:2011-02-22 04:38:52
【问题描述】:

我在 SQL Server 2005 中有一个值为 -7590730850027557904 的字段,我正在通过 Delphi 5 中的 ADO 检索它,但我检索到的是 7590730850027557904 - 省略了负号。从 SQL Server 到 Delphi 5 检索 longint 值的正确方法是什么?

这是我的代码

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

【问题讨论】:

标签: sql-server-2005 delphi delphi-5


【解决方案1】:

SQL Server 具有 bigint 类型。
从 -2^63 (-9,223,372,036,854,775,808) 到 2^63-1 (9,223,372,036,854,775,807)。
Delphi中的等价Int64

【讨论】:

    【解决方案2】:

    感谢我的同事。解决方案是在从数据库中查询时将 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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多