SQLite“格式错误的数据库架构”错误

问题描述 投票:0回答:2

我在 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) - 靠近“(”:语法错误。”

delphi sqlite firedac
2个回答
0
投票

当我得到这个时,我正在使用Python。我曾尝试在python3.5中使用我在python3.7中开发的一些代码。版本不同步。我在 37 中重新生成了该项目,它运行良好,没有架构问题。


0
投票

SQLite对版本非常敏感。升级Delphi后我也遇到了同样的问题。首先我认为新版本中的数据库处理发生了一些变化,这导致了问题,但后来我发现较新版本的 sqlite3.dll 位于 Delphi 的“bin”目录中,这就是原因。我把它替换为我之前使用过的版本,问题就消失了。

© www.soinside.com 2019 - 2024. All rights reserved.