2
我正在爲我的Phonegap應用程序開發一些數據庫操作。我正在測試SQLite的事務功能,有一點,我不明白。JavaScript SQLite事務回滾
這裏在一個事務中的例子:
dbObj.dbConnection.transaction(function (tx) {
tx.executeSql('INSERT OR IGNORE INTO foo (id, text) VALUES (?, ?)', [6,"aaalabala6"], function(tx, results) {
document.write("make insert<br>");
}, function (tx, err){
alert(err.message);
});
tx.executeSql('CREATE TABLE foo (id unique, text)', [], function(tx, results) {
}, function (tx, err){
console.log(err.message); // here an error - table already exists
});
tx.executeSql('INSERT OR IGNORE INTO foo (id, text) VALUES (?, ?)', [7,"aaalabala7"], function(tx, results) {
document.write("make insert<br>");
}, function (tx, err){
alert(err.message);
});
});
中間的SQL查詢拋出一個錯誤(無法準備的語句(1個表foo已存在)),因爲表「foo」存在。問題是,爲什麼交易沒有回滾?我能以某種方式強制事務回滾出錯嗎?
我的聲明中有錯誤嗎?
非常感謝!有用 :-) –