4

如何从 sdcard 加载现有的 .db 文件或使用 phoneGap 或任何可与 phoneGap 一起使用的插件在 sdcard 中创建数据库?

我想将我的 .db 文件保存在 sdcard 中,因为数据库的大小可能会增加。

4

3 回答 3

4

我面临同样的问题,但是在对 phonegap-cordova 库进行了长时间的彻底阅读之后,我发现它缺乏提供选择路径的灵活性。

原因可能是由于跨平台限制,库绑定你使用默认的应用程序路径,所以在不同的平台上,库可以轻松获取文件。

但是什么!!有一个技巧可以实现目标....

function onDeviceReady() {
    var db = window.openDatabase("test", "1.0", "Test DB", 1000000);
}

实际上,当 JavaScript 调用 'openDatabase()' 函数时,它会做以下事情

  • 在 db_name 之前添加'/data/data/<package_name_of_your_app>/'
  • 并在 db_name 之后添加“.db”

即:在上述情况下,结果将是;

/data/data/<package_name_of_your_app>/test.db

所以诀窍就在这里;

function onDeviceReady() {
      var db = window.openDatabase("../../../../mnt/sdcard/test", "1.0", "Test DB", 1000000);
}
  • 在db_name之前添加'../../../../mnt/sdcard/',不要添加扩展名,因为库添加'.db'本身,如果添加任何扩展名,那么你的db文件将是db_name。(你的扩展名).db

怎么办!它会;

  • 在 db_name 之前添加'/data/data/<package_name_of_your_app>/'
  • 并在 db_name 之后添加“.db”
  • 它会占用您的 db_name '../../../../mnt/sdcard/test'

因此,结果将是;

/data/data/<package_name_of_your_app>/../../../../mnt/sdcard/test.db

所以,它会回到你手机的根目录,然后是/mnt/sdcard

于 2013-01-08T11:20:57.660 回答
0

对的,这是可能的。连同您需要在连接字符串中提及数据库文件路径的更改。有关更多类似代码参考的信息,请查看此处

于 2012-06-22T07:26:03.457 回答
0

是的 。你可以,我只提供链接 http://gauravstomar.blogspot.se/2011/08/prepopulate-sqlite-in-phonegap.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed:+GauravSTomarBootstrappingIntelligence+(Gaurav+S+Tomar+ :+引导+智能

这实际上是关于预填充。你可以从中得到一些东西。对于想要预先填充的人来说,就是这样。

于 2012-06-22T07:26:05.283 回答