【发布时间】:2015-12-11 15:38:38
【问题描述】:
我想为 Thunderbird 制作一个使用 SQLite 数据库的小型插件。我用“SQLite Manager”创建了我的数据库。 问题是当我访问数据库时,我收到它为空的消息。但事实并非如此!
数据库:
----------------------------
| table1 | table2 | table3 |
----------------------------
| ... | ... | ... |
| ... | ... | ... |
----------------------------
这里是 JavaScript 代码。它应该返回表的名称,但我得到 0。
Components.utils.import("resource://gre/modules/Sqlite.jsm");
Components.utils.import("resource://gre/modules/Task.jsm");
Task.spawn(function() {
let db;
let result;
try {
db = yield Sqlite.openConnection({ path: "db.sqlite" });
result = yield db.execute("SELECT name FROM sqlite_master WHERE type='table'");
alert(result.length);
} catch (ex) {
alert("error: " + ex);
} finally {
if (db) yield db.close();
}
});
谁能告诉我我做错了什么?
是否可以在 Thunderbird 中导入并读取已经存在的数据库?
谢谢!
【问题讨论】:
-
数据库是否在当前配置文件的目录中?如果没有,数据库将在那里创建,当然是空的。
-
你说得对。我认为这是相对于我的 JavaScript 文件。正确的路径是:extensions/db@example.de/chrome/content/db.sqlite!是否可以使用 Chrome URL 作为绝对路径?
标签: javascript sqlite thunderbird thunderbird-addon