【问题标题】:Firefox addon: Connecting to SQLite database located in the addon's "data" folderFirefox 插件:连接到位于插件“数据”文件夹中的 SQLite 数据库
【发布时间】:2013-10-17 11:04:43
【问题描述】:

我正在使用 addon-sdk 编写我的第一个 firefox 插件。

这个插件的目的是

  • 从特定页面获取数据,
  • 使用此数据查询插件内置的 SQLite 数据库,
  • 在特定页面中附加查询结果。

我已经使用 sqlite3 创建了我的 SQLite 数据库,并将其作为 myDB.db 存储在“数据”文件夹或附加组件中。

但是当我尝试打开我的数据库时它不起作用。

我试过这样没有成功:

// Import the needed modules
var {Cu} = require("chrome");
Cu.import("resource://gre/modules/Services.jsm");
Cu.import("resource://gre/modules/FileUtils.jsm");

// Open SQLite database
let file = FileUtils.getFile(self.data, ['myDB.db']);
let mDBConn = Services.storage.openDatabase(file); // Will also create the file if it does not exist

我在 Mozilla 存储文档中更改了先前设置为“ProfD”的位置,因为数据库不存在(或者我应该将其复制到那里?)。

请告诉我是否应该以不同的方式进行。我想到了 SQLite,因为会有一些查询。

【问题讨论】:

    标签: firefox-addon sqlite


    【解决方案1】:

    来自 Wladimir Palant 接受的"How to initialize SQLite file for Firefox add-on?"答案

    从 Add-on SDK 1.5 开始,扩展不再被解压缩 安装 - 它们作为打包的 XPI 文件保留在磁盘上(这很好 性能)。 SQLite 需要一个物理文件,但不是什么 在档案中。

    您应该使用 ProfD 文件夹来存储您的文件。这也意味着无论数据存储在您的数据库中,在升级或重新安装期间都会保留在那里

    【讨论】:

    • 但是我不明白如果我无法在我的插件脚本中检索到这个数据库,我该如何将它存储在 ProfD 中?
    • 您尝试过使用 ProfD 吗?你有没有遇到任何错误?如果有,那是什么?
    • 附注,插件可以在安装时解压缩,但出于性能原因不建议这样做。使用 ProfD 是一个更好的解决方案。 developer.mozilla.org/en-US/docs/Install_Manifests#unpack
    • 也不建议将数据存储在解压缩的扩展目录中,因为该目录包括。您的数据将在加载项卸载(自动)加载项升级/降级时删除。
    • 通过挖掘 Wladimir Palant 的回答,似乎一种方法是创建数据库并使用我已经拥有的数据库中的数据填充它。
    猜你喜欢
    • 2018-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-15
    • 1970-01-01
    相关资源
    最近更新 更多