2011-02-04 49 views
0

我有以下一段代碼,它應該能夠記錄到控制檯的記錄號(如果存在表subjects)。獲取表中的記錄數

db = openDatabase("myDatabase", "1.0", "", 200000); 

db.transaction(function(tx) { 
    tx.executeSql("SELECT COUNT(*) AS nor FROM subjects", [], 
     function(result){ 
      console.log(result.rows); 
     }, 
     function(tx, error){ 
      tx.executeSql("CREATE TABLE subjects (id REAL UNIQUE, name TEXT)"); 
     } 
    ); 
}); 

其實result.rows被記錄爲未定義,所以我甚至不能調用方法item(int index)就可以了。我如何訪問返回記錄的數量?

回答

2

您忘記了onSuccess回調函數中的tx參數。您的result變量實際上是交易對象。

下面是更正後的代碼:

db = openDatabase("myDatabase", "1.0", "", 200000); 

db.transaction(function(tx) { 
    tx.executeSql("SELECT COUNT(*) AS nor FROM subjects", [], 
     function(tx, result){ // <-- this is where you forgot tx 
      console.log(result.rows); 
     }, 
     function(tx, error){ 
      tx.executeSql("CREATE TABLE subjects (id REAL UNIQUE, name TEXT)"); 
     } 
    ); 
});