如何使用WebSQL访问数据库?

时间:2013-09-26 06:34:45

标签: database html5 jquery-mobile web-sql

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

代码:

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

将结果附加到列表视图中但未获取。

先谢谢。

1 个答案:

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

也许你可以看到你错过的东西。