2012-12-04 26 views
7

有没有办法在单个事务中执行多个语句?我想要做的事,如:如何在Web SQL中执行多个语句?

db.transaction(function (tx) { 
    tx.executeSql(
     "CREATE TABLE Foo(ID INTEGER); CREATE TABLE Bar(ID INTEGER)", 
     function (tx, result) { 
      alert("success!"); 
     }); 
    }); 

但是,相反,我发现我必须做这样的事情,而不是:

db.transaction(function (tx) { 
    tx.executeSql("CREATE TABLE Foo(ID INTEGER)"); 
    tx.executeSql("CREATE TABLE Bar(ID INTEGER)", 
     function (tx, result) { 
      alert("success!"); 
     }); 
    }); 

我是限定于由他们自己的事务执行个别报表然后在最后一个事务上触发successFn,或者我可以在单个事务中执行多个语句吗?

回答

7

您的第二个代码已经在单个事务中执行多个语句。第一个代码不正确(不支持),因为不清楚返回回调的结果。

即使支持,性能与内部相同,但必须转换为第二条语句。