1

我正在使用 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,因为会有一些查询。

4

1 回答 1

4

来自 Wladimir Palant 接受的“如何为 Firefox 插件初始化 SQLite 文件?”的回答。

从 Add-on SDK 1.5 开始,扩展不再在安装时解压缩 - 它们作为打包的 XPI 文件保留在磁盘上(这有利于性能)。然而,SQLite 需要一个物理文件,而不是档案内的东西。

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

于 2013-10-17T13:36:20.077 回答