我一步一步地按照本教程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;
有谁知道为什么会发生这种情况?谢谢!
答案 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;