PhoneGap嵌套的executeSql无法在iPad模拟器中运行

时间:2012-02-06 17:39:15

标签: jquery ipad html5 sqlite cordova

不知怎的,我的应用程序在Win-Safari中完美运行,但不知何故不被PhoneGap包裹。这是片段:

// working db connection
db.transaction(function(tx) {
  tx.executeSql('SELECT * FROM tbl', [], function(tx, rs){
    // do something with the result

    tx.executeSql('SELECT * FROM another_tbl', [], function(txTwo, rsTwo){
      // do something with the result

      // further nesting ...

    }, errorHandler, successHandler);

  }, errorHandler, successHandler);
}

第一个resultSet是正确的,我可以console.log()数据。但在那之后,我无法访问第二个嵌套查询的数据。

我没有得到任何错误,我的处理程序也没有被调用(例如errorHandler)。有趣的是,它不会导致Safari(Win 7)上的任何问题

1 个答案:

答案 0 :(得分:0)

我有同样的问题。我已经通过在第一次调用executeSql的回调中嵌套另一个事务来实现它(我认为这非常难看,但也是如此)。

context.db.db.transaction(function(tx) {
    tx.executeSql("SELECT coalesce(sum(pointsawarded),0) as points from eventhistory ", [], function(tx, res) {
        alert('h1' + JSON.stringify(res));
        context.db.db.transaction(function(txsafe) {
            txsafe.executeSql("SELECT coalesce(sum(pointsawarded),0) as points2 from eventhistory ", [], function(tx2, res2) {
                alert('h2' + JSON.stringify(res2));
            });
         });
     });
});