0

私はSqliteのデータベースを持っています。indexedDB でファイルに接続したい。また、indexedDBを試してみましたが、プロファイルに新しいsqliteファイルが作成されました。この新しい sqlite ファイルには、「データベース」という名前のテーブルがあります。このテーブルには、私のファイルの名前が含まれています。

私のソースコードは次のとおりです。

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変数は空になります。

4

2 に答える 2

1

これは不可能です。

Firefoxは独自のIndexedDBデータベースをSQLite形式で保存しますが、これらのデータベースに直接クエリを実行したりアクセスしたりすることはできません。代わりに、非同期IDBAPIを使用する必要があります。

于 2013-01-29T15:43:07.123 に答える
0

あなたの質問を正しく理解していれば、既存の SQLite データベースがあり、IndexedDB を使用してそれに接続しようとしていますか?

編集者が彼の答えで言ったように、これは不可能です。IndexedDBは、データベースにアクセスするための汎用インターフェイスではありません。名前はちょっと欺瞞的ですが、IndexedDB はリレーショナル データベースではありません。実際には、ブラウザでオブジェクト ストアを作成して JavaScript オブジェクトを保存できます。これらのストアは、JavaScript を使用してブラウザで作成されます。Firefox の現在の実装では、IndexedDB データを SQLite データベースに保存しますが、仕様はこれは必要ありません。各ブラウザは、バックグラウンドで好きな方法でデータを保存できます。他のブラウザー、および Firefox の将来のバージョンでは、SQLite を使用する場合と使用しない場合がありますが、IndexedDB は使用するバックエンド データベースへのアクセスを提供しないため、これは問題ではありません。Firefox での現在の実装でさえ、SQLite だけに依存しているのではなく、FileBlobオブジェクトなどをSQLite DB とは別に保存します。

于 2013-01-31T23:09:41.690 に答える