Firedac SQLite 返回错误值

Adr*_*off 0 delphi sqlite delphi-11-alexandria

我的 SQLite 数据库包含表players. 在数据库浏览器中,表中的数据是正确的,但是在检索数据时,它返回不同的值。

数据库中的值:76561198113034550,返回值:152768822。我通过以下方式获取价值:

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

playerID := qryPlayers.FieldByName('steamid').Value; // .AsString returns the same value
Run Code Online (Sandbox Code Playgroud)

这是什么原因造成的?我该如何解决?

Del*_*der 8

我刚刚检查了,4 个低字节76561198113034550有什么值... tadaaa,它是152768822!因此高 4 个字节被简单地截断。

声明playerIDInt64、 notIntegerCardinal因为这些类型在内存中只有 4 个字节。
并从数据库中检索值使用qryPlayers.FieldByName('steamid').AsLargeInt