我的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
字符串
是什么导致了这个问题,我该如何解决?
1条答案
按热度按时间zbdgwd5y1#
我刚刚检查了
76561198113034550
的4个低字节有什么值... tadaaa,它是152768822
!所以上面的4个字节被简单地截断。将
playerID
声明为Int64
,而不是Integer
或Cardinal
,因为这些类型在内存中只有4个字节。使用
qryPlayers.FieldByName('steamid').AsLargeInt
从DB检索值。