附加組件使用的SQLite數據文件可能是使用data.url()訪問的文件之一嗎?如何初始化Firefox插件的SQLite文件?
如果是這樣,怎麼做,一方面它關閉Services.storage.openDatabase()
如果沒有,有可能是某些代碼(CREATE TABLE IF EXISTS ...)只被執行首次運行附加組件?
1
A
回答
4
是否有可能通過一個附加曾經是()與data.url訪問的文件之一的SQLite的數據文件嗎?
不可以。從附加SDK 1.5開始,擴展在安裝時不再解壓 - 它們保留爲壓縮的XPI文件(這對性能有好處)。但SQLite需要一個物理文件,而不是存檔內的東西。
如果不是,是否有可能對某些代碼(CREATE TABLE IF EXISTS ...)僅在首次運行附加組件時執行?
當然,但你不應該這樣做 - 如果你的數據庫文件由於某種原因被刪除會怎麼樣?這是更好地檢查數據庫是否已經存在:
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, ...");
-2
Components.utils.import("resource://gre/modules/Services.jsm");
Components.utils.import("resource://gre/modules/FileUtils.jsm");
let file = FileUtils.getFile("ProfD", ["my_db_file_name.sqlite"]);
let mDBConn = Services.storage.openDatabase(file); // Will also create the file if it does not exist
相關問題
- 1. 如何初始化MVvmCross SQLite插件
- 2. 如何初始化JQuery插件?
- 3. grunt插件如何初始化?
- 4. 如何初始化fengyuanchen jQuery cropper插件?
- 5. 初始化jquery tablesorter插件
- 6. onesignal插件初始化
- 7. Datatable插件不初始化
- 8. 如何初始化jquery easy滑塊插件到我的插件?
- 9. Firefox是否禁用無法初始化的插件?
- 10. 如何從FXML文件初始化ListView?
- 11. 如何初始化文件系統?
- 12. 初始化/未初始化一個jQuery插件頁更改
- 13. 插件的初始化失敗
- 14. Chrome的插件不正確初始化
- 15. 初始化PhoneGap的插件BarcodeScanner iOS中
- 16. 如何使用firefox插件創建.sqlite文件
- 17. YAP初始化文件?
- 18. SBCL初始化文件
- 19. 初始化包含文件
- 20. Ember組件,如何等待隨機jQuery插件初始化?
- 21. 如何初始化angular2物化組件?
- 22. ASP.NET:初始化時如何初始化*用戶控件*
- 23. 初始化第三部分插件bundle.js
- 24. document.ready()在jQuery插件初始化?
- 25. Go插件變量初始化
- 26. 在隱藏div中初始化插件
- 27. Phonegap插件延遲初始化
- 28. Intellij Spring插件初始化錯誤
- 29. Javascript選擇插件初始化
- 30. JScrollPane插件 - 重新初始化崩潰
這不回答任何問題。 – 2012-09-24 12:30:12