在 Delphi 5 中从 SQL Server 表检索 longint 字段的正确方法

发布于 2024-10-18 23:25:53 字数 375 浏览 5 评论 0原文

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

这是我的代码

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

I have a field with value -7590730850027557904 in SQL Server 2005 and I am retrieving it through ADO in Delphi 5 but what I retrieved was 7590730850027557904 - the negative sign was omitted. What is the correct way of retrieving longint values from SQL Server to Delphi 5?

Here is my code

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

瀟灑尐姊 2024-10-25 23:25:54

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

SQL Server has bigint type.
It's from -2^63 (-9,223,372,036,854,775,808) through 2^63-1 (9,223,372,036,854,775,807).
Equivalent Int64 in Delphi

贱贱哒 2024-10-25 23:25:54

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

Thanks to my colleague. The solution is to covert bigint to string as you query from the database.

 with DataSet do
  begin
    Connection := Conn;
    CommandText := 'SELECT CASST(SID AS VARCHAR(50)) AS SID FROM CUSTOMERSLIST';
    Open;
  end;
  ShowMessage(DataSet.FieldByName('SID').AsString);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文