gpt4 book ai didi

delphi - FireDac 查询无法正确读取大整数

转载 作者:行者123 更新时间:2023-12-03 02:50:35 34 4
gpt4 key购买 nike

我正在尝试使用 FireDac 查询数据库。这是我的代码;

procedure TfSMSViewer.LoadSMSFromDatabase(path: AnsiString);
var
con: TFDConnection;
query: TFDQuery;
LI: TListItem;
B: Int64;
begin
con := TFDConnection.Create(nil);
query := TFDQuery.Create(con);
con.LoginPrompt := False;
con.Open('DriverID=SQLite;Database=' + Path +' ;');
query.Connection := con;
query.SQL.Text := 'SELECT * FROM sms';
query.Open;
query.First;
While Not Query.EOF Do
Begin
LI := ListView1.Items.Add;
LI.Caption := inttostr(query.Fields[4].AsLargeInt); //This line
if query.FieldValues['type'] = 1 then
LI.SubItems.Add('Incoming')
else
LI.SubItems.Add('Outbound');

LI.SubItems.Add(query.FieldValues['address']);
LI.SubItems.Add(query.FieldValues['body']);
Query.Next;
End;
end;

但是突出显示的行无法正常工作。在数据库中,此列中设置的示例值是 1418421520957(UNIX 时间戳)。

执行该行代码时,结果为1082313277。

SQLite 数据库中的数据类型设置为 Integer。我用来调试的免费软件显示了正确的值。调试我的代码时,在进行任何分配之前从数据库中提取不正确的值。

此外,我的 TListView 中填充的一些值也被否定。 Values loaded into the listview from my code

TFDQuery 不支持大整数吗?我怎样才能解决这个问题?

谢谢

最佳答案

这就是我根据 TLama 的建议修复它的方法。也许这对某人或 future 的我有用。

  con := TFDConnection.Create(nil);
query := TFDQuery.Create(con);
with query.FormatOptions do begin
OwnMapRules := True;
with MapRules.Add do begin
SourceDataType := dtInt32;
TargetDataType := dtInt64;
end;
end;

关于delphi - FireDac 查询无法正确读取大整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28489504/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com