已关注DocWiki ,我正在将我的 SQLite 数据库部署到 assets\internal\
并使用了以下代码:
SQLConnection1.Params.Values['Database'] :=
TPath.Combine(TPath.GetDocumentsPath, 'myDB.db');
但是,当我尝试访问其中一个表时,它并不存在。
SQLite 的部署/访问的正确设置是什么?
最佳答案
我刚刚完成了将 SQLite 数据库部署到 Android 应用程序的过程。这是我学到的东西。
我没有使用应用程序部署我的数据库,而是在连接时创建它,然后创建表(如果它们不存在)。
我还使用 TFDConnection 组件代替 TSQLConnection 组件。
所以在 TFDConnection BeforeConnect 上:
{$IF DEFINED(IOS) or DEFINED(ANDROID)}
FDConnection1.Params.Values['Database'] :=
TPath.GetDocumentsPath + PathDelim + 'MyDatabase.s3db';
{$ENDIF}
在 TFDConnection AfterConnect 上:
FDConnection1.ExecSQL('CREATE TABLE IF NOT EXISTS MyTable (myField1 TEXT NOT NULL)');
我刚刚在模拟器和我的 Droid X 上测试了这个方法。
还要确保您包含了 TFDGUIxWaitCursor 和 TFDPhysSQLiteDriverLink 组件。
关于android - SQLite 数据库部署到 Android 设备的路径是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18877955/