Я пытаюсь запросить базу данных с помощью FireDac. Вот мой код;Запрос FireDac, который не читает большие целые числа правильно
procedure TfSMSViewer.LoadSMSFromDatabase(path: AnsiString);
var
con: TFDConnection;
query: TFDQuery;
LI: TListItem;
B: Int64;
begin
con := TFDConnection.Create(nil);
query := TFDQuery.Create(con);
con.LoginPrompt := False;
con.Open('DriverID=SQLite;Database=' + Path +' ;');
query.Connection := con;
query.SQL.Text := 'SELECT * FROM sms';
query.Open;
query.First;
While Not Query.EOF Do
Begin
LI := ListView1.Items.Add;
LI.Caption := inttostr(query.Fields[4].AsLargeInt); //This line
if query.FieldValues['type'] = 1 then
LI.SubItems.Add('Incoming')
else
LI.SubItems.Add('Outbound');
LI.SubItems.Add(query.FieldValues['address']);
LI.SubItems.Add(query.FieldValues['body']);
Query.Next;
End;
end;
Однако выделенная линия не работает должным образом. В базе данных значение примера, заданное в этом столбце, равно 1418421520957 (временная метка UNIX).
Когда эта строка кода выполняется, то результат будет 1082313277.
Тип данных в базе данных SQLite устанавливается в целое. Бесплатное программное обеспечение, которое я использую для отладки, показывает правильное значение. При отладке моего кода некорректное значение извлекается из базы данных до того, как будет выполнено какое-либо присвоение.
Также некоторые значения, заполненные в моем TListView
, отрицаются.
TFDQuery
не поддерживает большие целые числа? Как я могу это исправить?
Благодаря
Каков тип данных в самой колонке базы данных? Имеет ли SQLite большой целочисленный тип данных? (IIRC, это не так.) Трудно сказать, почему ценности не то, что вы ожидаете, если не объясните, что у вас есть для данных, на которые вы обращаетесь в первую очередь. При размещении вопроса здесь, пожалуйста, помните, что у нас есть абсолютно нулевая информация для использования, кроме того, что вы нам предоставляете; мы не можем читать ваши мысли или видеть ваш экран с того места, где мы сидим. –
Тип данных установлен в целое. Бесплатное программное обеспечение, которое я использую для просмотра базы данных вне моего приложения, отображает значение правильно. –
Пожалуйста, отредактируйте ваш вопрос, чтобы добавить информацию там, а не в комментариях. Люди не могут легко увидеть эту информацию в беспорядке комментариев. –