1

我正在开发一个 Web 应用程序并且我有一个现有的数据库。我正在尝试使用 WebSQL 从数据库中获取数据,但收到错误为“ExceptionReferenceError: tx is not defined”

代码:

var databaseSync = null;

try 
{
   databaseSync = openDatabase("database", "1.0", "Database", 10 * 1024 * 1024);
   databaseSync.transaction(function(tx){
      tx.executeSql('SELECT distinct(Subject) FROM Data', [], function (tx, cb_results){
       var len = cb_results.rows.length;
      var results = [];
  for (i = 0; i < len; i++)
  {
    var row = cb_results.rows.item(i);
      $("#list").append('<li><a href="#" id="">'+ row.Subject +'</a></li>');
          $("#list").listview('refresh');
  }    
      }, function(){console.log("Transaction success");}, function(tx, error){console.log("Error" + error.message);});

   });
}
catch (e) {
    // TODO: handle exception
    console.log("Exception" +e );
}

在列表视图中附加结果但没有得到。

提前致谢。

4

1 回答 1

0

尝试这样的事情:

var databaseSync = null;
try 
{
   databaseSync = openDatabase("database", "1.0", "Database", 2 * 1024 * 1024);
   databaseSync.transaction(function(tx){
      tx.executeSql('SELECT distinct(Subject) FROM Data', [], function (tx, cb_results){
      var len = cb_results.rows.length;
      var results = [];
  for (i = 0; i < len; i++)
  {
    var row = cb_results.rows.item(i);
    results[i] = row;
   }        
      console.dir(results);
      }, function(){console.log("Transaction success");}, function(tx, error){console.log("Error" + error.message);});

   });
}
catch (e) {
    // TODO: handle exception
    console.log("Exception" +e );
}

还有,为什么只有2MB的数据库?

- 编辑 -

好的,这是一个函数的例子,在一个实时项目中使用:

function return_icd10_vwxy_headers(callback)
{
    var results = [];
    session_storage_database_handle.transaction(function (tx) {
        tx.executeSql("SELECT  mainid, key, description FROM qicd10vwxy WHERE parent = '0';", [], function (tx, query_result) 
        {
            var len = query_result.rows.length;
            for (i = 0; i < len; i++){
                var row = query_result.rows.item(i);
                results[i] = {
                                mainid: row["mainid"],
                                key: row["key"],
                                description: row["description"]
                            };
            }
            callback(results)
        });
    });
}

也许你能看到你错过的东西。

于 2013-09-26T06:52:22.940 回答