Delphi XE5 Android Dev“无法打开数据库文件”

时间:2014-02-08 17:29:35

标签: android sqlite delphi delphi-xe5

我一步一步地按照本教程Mobile Tutorial: Using SQLite (iOS and Android)但是当我在Android设备上部署我的应用程序并尝试添加条目时,我收到以下错误“无法打开数据库文件”

以下是我的代码片段:

procedure TForm1.rappadAfterConnect(Sender: TObject);
begin
      rappad.ExecuteDirect('CREATE TABLE IF NOT EXISTS notes(ID INTEGER PRIMARY KEY, title TEXT NOT NULL, content TEXT NOT NULL);');
end;

procedure TForm1.rappadBeforeDisconnect(Sender: TObject);
begin
  {$IF DEFINED(iOS) or DEFINED(ANDROID)}
  rappad.Params.Values['ColumnMetadataSupported'] := 'False';
  rappad.Params.Values['Database'] :=
      TPath.Combine(TPath.GetDocumentsPath, 'rappad.s3db');
  {$ENDIF}
end;

有谁知道为什么会发生这种情况?谢谢!

1 个答案:

答案 0 :(得分:2)

rappadBeforeDisconnect中的代码需要位于 BeforeConnect 中。在断开连接之前,告诉数据库所在的连接是没有意义的。

procedure TForm1.rappadBeforeConnect(Sender: TObject);
begin
  {$IF DEFINED(iOS) or DEFINED(ANDROID)}
  rappad.Params.Values['ColumnMetadataSupported'] := 'False';
  rappad.Params.Values['Database'] :=
      TPath.Combine(TPath.GetDocumentsPath, 'rappad.s3db');
  {$ENDIF}
end;