我将数百行插入本地数据库。
在此插入之后,我想从该表中选择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);
}
});
答案 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
});
希望它有所帮助。干杯!