获取表中的记录数

时间:2011-02-04 11:42:19

标签: sqlite html5

我有以下代码,它应该能够记录到控制台的记录数(如果表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)。如何访问返回的记录数?

1 个答案:

答案 0 :(得分: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)");
        }
    );
});