gpt4 book ai didi

javascript - 如何为 Firefox 附加组件初始化 SQLite 文件?

转载 作者:行者123 更新时间:2023-11-30 13:21:54 24 4
gpt4 key购买 nike

  1. 附加组件使用的 SQLite 数据文件是否可能是使用 data.url() 访问的文件之一?

  2. 如果是这样,如何将它交给 Services.storage.openDatabase()

  3. 如果不是,是否有可能某些代码(CREATE TABLE IF EXISTS...)仅在首次运行插件时执行?

最佳答案

Is it possible for an SQLite data file used by an add-on to be one of the files accessed with data.url()?

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

If not, is it possible for certain code (CREATE TABLE IF EXISTS...) to be executed only in a first-time run of an add-on?

当然可以,但是您不应该这样做——如果您的数据库文件由于某种原因被删除了怎么办?最好检查数据库是否已经存在:

var dbFile = FileUtils.getFile("ProfD", "foobar.sqlite");
var alreadyExists = dbFile.exists();
var dbConnection = Services.storage.openDatabase(dbFile);
if (!alreadyExists)
connection.createTable("foo", "id INTEGER PRIMARY KEY, ...");

供引用:FileUtils.jsm

关于javascript - 如何为 Firefox 附加组件初始化 SQLite 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9986740/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com