Как получить доступ к базе данных SQLite внутри каталога данных в add on builder - PullRequest
1 голос
/ 06 марта 2012

Есть ли способ получить доступ к базе данных SQLite внутри каталога Data в конструкторе надстроек с помощью надстройки SDK v1.5?

это код, который я использую:

var {Cc, Ci, Cu} = require("chrome");
var data = require('self').data;

// This is an active module of the pankajsingh5k Add-on
exports.main = function() {

var {Services} = Cu.import("resource://gre/modules/Services.jsm");
var {FileUtils} = Cu.import("resource://gre/modules/FileUtils.jsm");

var file = FileUtils.getFile("Desk", "Helper.sqlite");

var mDBConn = Services.storage.openDatabase(file);

console.log('loading');

var statement = mDBConn.createStatement("SELECT * FROM Words");  

прямо сейчас FileUtils.getFile () имеет значение «Рабочий стол», что означает «Рабочий стол».Я не знаю, как получить доступ к файлу sql lite в структуре каталогов add on builder.

1 Ответ

1 голос
/ 06 марта 2012

Вы не можете, и для этого есть очень простая причина - с исправленной ошибкой 638742 (я думаю, начиная с Add-on SDK 1.5) каталог data больше не является каталогом на диске. Надстройка устанавливается в виде файла XPI на диске, и этот каталог фактически является каталогом внутри упакованного файла XPI. SQLite нужен реальный файл для работы, поэтому в любом случае размещение измененных данных в каталоге data было бы плохой идеей.

Вы должны использовать "ProfD" вместо "Desk" - это каталог профиля пользователя. Обязательно выберите имя файла, которое явно принадлежит вашему расширению, все расширения записывают данные в профиль.

...