我有一个Sqlite数据库。我想通过indexedDB连接到我的文件。 我也尝试了indexedDB,它在配置文件中创建了新的sqlite文件。这个新的sqlite文件有一个名为“database”的表。该表包含我的文件名。
我的源代码是:
var indexedDB = window.indexedDB
|| window.webkitIndexedDB
|| window.mozIndexedDB
|| window.msIndexedDB;
var db;
var request = indexedDB.open("rule");
request.onerror = function(evt) {
console.log("Database error code: " + evt.target.errorCode);
};
request.onsuccess = function(evt) {
console.log("Database connect success");
db = request.result;
};
代码运行时,db
变量为空。
答案 0 :(得分:1)
这是不可能的。
在Firefox stores its own IndexedDB databases in an SQLite format期间,您无法直接查询或访问这些数据库。相反,您需要使用异步IDB API。
答案 1 :(得分:0)
如果我正确理解您的问题,您有一个预先存在的SQLite数据库,并且您尝试使用IndexedDB连接到它?
正如编辑在他的回答中所说,不可能。 IndexedDB不是用于访问数据库的通用接口。该名称有点欺骗性, IndexedDB不是关系数据库;它实际上允许您在浏览器中创建Object Stores以存储JavaScript对象。这些存储是使用JavaScript在浏览器中创建的,Firefox中的当前实现确实将IndexedDB数据存储在SQLite数据库中,但the spec确实存在不要求这样,每个浏览器都可以存储数据但是他们喜欢在幕后。其他浏览器和Firefox的未来版本可能会或可能不会使用SQLite,这并不重要,因为IndexedDB无法提供对它所使用的后端数据库的访问权限。即使Firefox中的当前实现也不仅仅依赖于SQLite,它还存储File
和Blob
个对象separate from the SQLite DB等内容。