0

ここで、phonegap 2.9.0ベースのアプリケーションでデータベースを保存および初期化するために使用したコード

 var db = window.openDatabase("Database", "1.0", "PhoneGap Demo", 200000);
 db.transaction(populateDB, errorCB, successCB);

 function populateDB(tx)
 {
   tx.executeSql('DROP TABLE IF EXISTS DEMO');
   tx.executeSql('CREATE TABLE IF NOT EXISTS DEMO (id unique, data)');
   tx.executeSql('INSERT INTO DEMO (id, data) VALUES (1, "First row")');
   tx.executeSql('INSERT INTO DEMO (id, data) VALUES (2, "Second row")');
 }

  function successCB()
  { 
  alert("Sucesss")
  var db = window.openDatabase("Database", "1.0", "PhoneGap Demo", 200000);            
  db.transaction(queryDB, errorCBs);
  }

  function queryDB(tx) 
  {
  tx.executeSql('SELECT * FROM DEMO', [],errorCB, querySuccess);
  }

  function querySuccess(tx, results)
  {
  alert("Insert ID = ",results.insertId);
  alert("Rows Affected = ",results.rowAffected);
  alert("Insert ID = ",results.rows.length);
  }
  function errorCBs(err)
  {
   alert("2nd error ",err.code);
  }
  function errorCB(err)
  {
  alert("Error processing SQL: ",err.code);
  }

アプリケーションが呼び出すとき

 db.transaction(populateDB, errorCB, successCB);

最初にsuccessCBのアラートが表示され、次にアラートerrorCBが表示されます。私のコードの何が問題なのですか?解決するのを手伝ってください

4

1 に答える 1

0

データベースを 2 回開く必要はありません。

パーツを取り出します:

var db = window.openDatabase("Database", "1.0", "PhoneGap Demo", 200000);            

successCB関数から。

于 2014-08-15T22:49:49.313 に答える