0

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

数据库中的值: 76561198113034550

返回值:152768822

我通过以下方式获得价值

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

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

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

4

1 回答 1

8

我刚刚检查过,4 个低字节的值是什么76561198113034550... 而 tadaaa,它是152768822!所以上面的 4 个字节被简单地截断。

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

于 2022-01-23T20:52:57.473 回答