0

私の問題は次のとおりです:Phonegap-AppでJavascriptを使用してsqliteデータベースを作成し、Eclipse(LogCat)から次の情報を取得しています:sqliteが返されました:エラーコード14、msg=はソース25467でファイルを開くことができません

これは私がdbを初期化する方法です(正常に動作します):

function initDB() {
  try { 

    if (!window.openDatabase) { 

      alert('doesn't work!'); 

    } else { 

      var shortName = 'name'; 

      var version = '1.0'; 

      var displayName = 'displayname'; 

      var maxSize = 65536; // in bytes 

      var db = window.openDatabase(shortName, version, displayName, maxSize); 

      db.transaction(populateDB, errorCB, successCB);
     }

  } catch(e) { 

    // Error handling code goes here. 

    if (e == INVALID_STATE_ERR) { 

      // Version number mismatch. 

      alert("Invalid database version."); 

    } else { 

      alert("Unknown error "+e+"."); 

    } 

    return; 

  } 

}

したがって、変数dbは私のデータベースで初期化されます。次に、次のコードを使用してデータベースにデータを入力しようとします。

function populateDB(tx) {
  //dropping the table if exists for testing
  tx.executeSql('DROP TABLE IF EXISTS CLIENT');

  //creating a table
  tx.executeSql('CREATE TABLE IF NOT EXISTS CLIENT (id int NOT NULL PRIMARY KEY, name text, adress text, notes text)');  

  //inserting an entry for testing -- SQLITE ERROR 14 HERE!
  tx.executeSql('INSERT INTO CLIENT (name, adress, notes) VALUES ("client1","adress1","note1")');
}

INSERT INTO CLIENTを実行しようとした行が機能しないため、トランザクションはコールバック関数errorCBを呼び出します。これは「SQLの処理中にエラーが発生しました:1」と表示され、LogCatはsqliteがエラー14を返したと表示します。私のアプリにすべてのアクセス許可を与えています..そしてテーブルCLIENTを作成してもエラーは発生しないので、アプリにはdbファイルに書き込むためのアクセス許可があると思いますか?何が問題ですか?

4

2 に答える 2

0

これを試して...

 tx.executeSql('INSERT INTO CLIENT (id,name, adress, notes) VALUES ("1","client1","adress1","note1")');

SQLiteが14のエラーコードを返したことを参照してください

于 2012-05-31T13:31:34.500 に答える
0

エラーが表示された場合:

I/Database(  362): sqlite returned: error code = 14, msg = cannot open file at source line 25467

あなたはそれを安全に無視することができます。これはおそらく、WebViewコンポーネントのインスタンス化です。webview.dbを開こうとすると、そのエラーがスローされますが、これは完全に必要ではありません。

「idintNOTNULL PRIMARY KEY」の代わりに、「id unique」を試して、挿入が機能していることを確認するために、挿入にidを指定してください。次に、id列にさらに条件を追加し続けます。

于 2012-05-31T14:50:10.383 に答える