2012-02-06 59 views
1

不知何故,我的應用程序在Win-Safari中完美工作,但不知何時由PhoneGap包裝。這是片段:PhoneGap嵌套executeSql不工作在iPad模擬器

// 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); 
} 

第一個結果集是正確的,我可以console.log()數據。但在此之後,我無法訪問第二個嵌套查詢的數據。

我沒有收到任何錯誤,而且我的處理程序也沒有被調用(例如errorHandler)。有趣的是,它不會導致Safari上的任何問題(贏7)

回答

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)); 
      }); 
     }); 
    }); 
}); 
相關問題