delphi Firedac SQLite返回错误值

wfsdck30  于 2023-08-04  发布在  SQLite
关注(0)|答案(1)|浏览(138)

我的SQLite数据库包含表players。在DB Browser中,表中的数据是正确的,但是当检索数据时,它返回的是不同的值。
数据库中的值:76561198113034550,返回值:152768822。我通过以下方式获得该值:

qryPlayers.Close;
qryPlayers.SQL.Text := 'SELECT * FROM players';
qryPlayers.Open;

playerID := qryPlayers.FieldByName('steamid').Value; // .AsString returns the same value

字符串
是什么导致了这个问题,我该如何解决?

zbdgwd5y

zbdgwd5y1#

我刚刚检查了76561198113034550的4个低字节有什么值... tadaaa,它是152768822!所以上面的4个字节被简单地截断。
playerID声明为Int64,而不是IntegerCardinal,因为这些类型在内存中只有4个字节。
使用qryPlayers.FieldByName('steamid').AsLargeInt从DB检索值。

相关问题