2010-01-22 1 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. –

ответ

7

Вот пример кода, как вы это делаете. Я тестировал последние версии сафари и хром в macos, ios и android.

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');"); 
    ... 
}, 

)

Смежные вопросы