android - SQLite 数据库部署到 Android 设备的路径是什么?

标签 android sqlite delphi firemonkey delphi-xe5

已关注DocWiki ,我正在将我的 SQLite 数据库部署到 assets\internal\

并使用了以下代码:

SQLConnection1.Params.Values['Database'] := 
TPath.Combine(TPath.GetDocumentsPath, 'myDB.db');

但是,当我尝试访问其中一个表时,它并不存在。

SQLite 的部署/访问的正确设置是什么?

最佳答案

我刚刚完成了将 SQLite 数据库部署到 Android 应用程序的过程。这是我学到的东西。

我没有使用应用程序部署我的数据库,而是在连接时创建它,然后创建表(如果它们不存在)。

我还使用 TFDConnection 组件代替 TS​​QLConnection 组件。

所以在 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/

相关文章:

java.lang.IllegalArgumentException : the bind value at index 1 is null

c# - EF6 为每个查询加载指定的子实体

delphi - 如何更改虚拟 TreeView 中根节点的状态索引?

android - 我们如何使表格布局双向滚动(水平,垂直)

objective-c - iOS 中的 Sqlite 数据库似乎是从用户目录加载的,但文件与应用程序中的不同

delphi - Delphi 中是否存在或者将来是否存在条件运算符?

sqlite - 执行包含 BLOB 数据的数组 DML 命令是否可能且有意义?

java - 在 Android 中检查 SMS 中的多个关键字

android - 位置 :fixed; in android it is broken, 不工作,为什么?

php - 使用 Urban Airship 和 php 自动向 ios/android 设备发送通知