我在 Delphi 中使用 FireDAC 时遇到错误。我需要帮助来解决这个问题。我更换了 SQLite 库,但没有成功。
procedure TForm1.Button3Click(Sender: TObject);
var
FDConnection1: TFDConnection;
str_: string;
rsQ: TFDQuery;
begin
FDConnection1 := TFDConnection.Create(nil);
with FDConnection1 do
begin
DriverName := 'SQLite';
str_ := GetCurrentDir+'\SyncData.sqlite3';
Params.Database := str_;
Open;
end;
rsQ := TFDQuery.Create(Nil);
rsQ.Connection := FDConnection1;
rsQ.SQL.Clear;
rsQ.SQL.Add('update metas set base_version = -1 where metahandle=1');
rsQ.ExecSQL;
Try
if rsQ <> nil then
begin
rsQ.Close;
rsQ.Free;
rsQ := Nil;
end;
except
end;
Try
if FDConnection1 <> Nil then
begin
FDConnection1.Close;
FDConnection1.Free;
end;
except
End;
end;
SQLITE 错误“[FireDAC][Phys][SQLite] 错误:格式错误的数据库架构 (MmapStatus) - 靠近“(”:语法错误。”
当我得到这个时,我正在使用Python。我曾尝试在python3.5中使用我在python3.7中开发的一些代码。版本不同步。我在 37 中重新生成了该项目,它运行良好,没有架构问题。
SQLite对版本非常敏感。升级Delphi后我也遇到了同样的问题。首先我认为新版本中的数据库处理发生了一些变化,这导致了问题,但后来我发现较新版本的 sqlite3.dll 位于 Delphi 的“bin”目录中,这就是原因。我把它替换为我之前使用过的版本,问题就消失了。