Firedac SQLite 返回错误值

Firedac SQLite returning wrong values

我有一个 SQLite 数据库,其中包含一个名为“玩家”的 table。我可以在 DB Browser 中看到 table 中的数据是正确的,但是当尝试检索数据时,它返回的值似乎与数据库中的值完全不同。

数据库中的值:76561198113034550

返回值:152768822

我正在通过以下方式获取值

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

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

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

刚刚查了一下,76561198113034550的低4个字节是什么值...而且,是152768822!所以高4个字节被简单地截断了。

playerID 声明为 Int64,而不是 IntegerCardinal,因为这些类型在内存中只有 4 个字节。
为了从数据库中检索值,请使用 qryPlayers.FieldByName('steamid').AsLargeInt.