我在 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)- near“(“:语法错误。”
2条答案
按热度按时间vatpfxk51#
当我得到这个的时候,我正在使用Python。我试图在python3.5中使用我在python3.7中开发的一些代码。版本不同步。我在37中重新生成了项目,它工作得很好,没有模式问题。
dluptydi2#
SQLite对版本非常敏感。我在升级 Delphi 后也遇到了同样的问题。起初我以为新版本的DB处理中发生了一些变化,这导致了问题,但后来我发现 Delphi 的“bin”目录中有一个较新版本的sqlite3.dll,这就是原因。我用我一直使用的版本替换了它,问题就消失了