HTML5本地数据库回调

时间:2012-03-02 18:50:46

标签: javascript database html5 insert

我将数百行插入本地数据库。

在此插入之后,我想从该表中选择SELECT *以获取并显示所有这些记录。

我尝试将Select语句放在INSERT事务的回调中,但它无法正常工作。当我进行页面刷新时,我测试了SELECT语句以查看它是否有效。

有人可以帮忙吗?插入所有记录后,我希望能够在不刷新页面的情况下全部选择它们。谢谢!

database.db.transaction(function(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);
                    }

            });

1 个答案:

答案 0 :(得分:0)

回答这个问题有点晚了,但可以帮助别人,所以......

db.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
});

希望它有所帮助。干杯!