2012-03-02 6 views
1

私はローカルデータベースに何百もの行を挿入しています。HTML5ローカルデータベースコールバック

この挿入後、これらのレコードをすべて取得して表示するには、そのテーブルからSELECT *を使用したいと思います。

私は、INSERTトランザクションのコールバックにSelect文を入れようとしましたが、正しく動作しません。 SELECT文をテストして、ページリフレッシュを実行したときに動作することを確認しました。

誰でも手助けできますか?すべてのレコードが挿入された後、ページを更新せずにすべてを選択できるようにします。ありがとう!

database.db.transaction(機能(TX){ JSONの処理

   tx.executeSql('INSERT INTO ...'), 
        [DATA IS HERE], 

        function (tx, callback) { 
         alert(callback.message); 

         database.db.transaction(function (tx) { 
         tx.executeSql('SELECT * from table;', [], tableSelectHandler, errorHandler); 
             }); 
            }, 
        function (tx, error) { 
         alert(error.message); 
        } 

      }); 

答えて

0

それは

デシベル、この特定の質問に答えるために少し遅れてですが、誰かを助けることができるので、... .transaction関数には、ErrorとSuccessのコールバック関数もあります.SelectコードはSuccessコールバックに置くことができ、すべてのInsertが実行された後、トランザクションの最後に実行されます。

database.db.transaction(function (tx) { //JSON PROCESSING 

    tx.executeSql('INSERT INTO ...'), 
     [DATA IS HERE], 
    function (tx, callback) { 
     alert("Insert ok"); 
    }, 
    function (tx, error) { 
     alert("Error inserting: " + error.message); 
    } 
}, 
function (error) { // This is the Error callback of the TRANSACTION 
    alert(error.message); 
}, 
function (result) { // This is the Success callback of the TRANSACTION 
    alert("TRANSACTION completed"); 

    database.db.transaction(function (tx) { 
     tx.executeSql('SELECT * from table;', [], tableSelectHandler, errorHandler); 
    }); // Your tableSelectHandler should take care of the result of the Select 
}); 

希望します。乾杯!

+0

これは知っておいてよかったです。実際にこれを使用して休憩しましたが、すぐにもう一度それに関与します。 – Garrett