Firefox插件:连接到位于插件“data”文件夹中的SQLite数据库

时间:2013-10-17 11:04:43

标签: firefox-addon sqlite

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

此附加组件的目的是

  • 从特定页面获取数据
  • 使用此数据查询加载项中构建的SQLite数据库
  • 在特定页面中附加查询结果。

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

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

我尝试过这样做没有任何成功:

// 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,因为会有一些问题。

1 个答案:

答案 0 :(得分:3)

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

的回答
  

从Add-on SDK 1.5开始,扩展程序不再被解压缩   安装 - 它们作为打包的XPI文件保留在磁盘上(这很好   表现)。 SQLite需要一个物理文件,而不是东西   在档案馆内。

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