2010-01-22 57 views
2

是否有可能做這樣的事情:HTML 5的SQLite:多個插入在一個事務中

begin; 
    insert into some_table (some_col, another_col) values ('a', 'b'); 
    insert into some_table (some_col, another_col) values ('c', 'd'); 
    ... 
commit; 

...在HTML 5?

由於每個事務都是異步的,並且擁有自己的回調函數,在我看來,編寫插入未知數量行的例程並且在完成時回調會很困難。

+1

簡短的回答是肯定的。顯然在一個事務中,executeSql命令排隊。您可以遍歷並執行事務中的所有執行語句。事務回調只會在所有executeSql語句運行後纔會觸發。 – 2010-01-22 21:40:36

回答

7

以下是你如何做的示例代碼。我在macos,ios和android上測試了safari和chrome的最新版本。

var db = openDatabase('dbname', '1.0', 'db description', 1024 * 1024); 
db.transaction(function (tx) { 
    tx.executeSql("insert into some_table (some_col, another_col) values ('a', 'b');"); 
    tx.executeSql("insert into some_table (some_col, another_col) values ('c', 'd');"); 
    ... 
}, 

相關問題