2013-09-26 73 views
1

我开发一个web应用程序,我有现成的database.I'm试图从数据库中获取数据使用的WebSQL,但得到的错误为“ExceptionReferenceError:TX没有定义”如何使用WebSQL访问数据库?

代码:

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

在列表视图中追加结果但未获取。

在此先感谢。

回答

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的数据库?

- 编辑 -

OK,这里是一个函数的例子,如在现场项目中使用:

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

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

+0

如何在列表视图中获取该数据库数据 – Lucky

+0

此代码适用于我 - 用于众多项目中。你看到了什么?你在什么浏览器中使用这个? console.dir给你什么?仅限 –

+0

事务成功显示在控制台窗口中..我正在使用chrome – Lucky