HTML5数据库表 - 检查是否为空

时间:2011-10-04 20:27:15

标签: sql html5 sp-executesql web-storage

我正在尝试编写一个函数来确定html5 websql db表是否为空。代码如下。我在那里发出警报,看看发生了什么。当此功能运行时,首先会弹出底部的警报。虽然该表为空,但返回值为false。

function tableisempty() {
tf = false;
query = "SELECT * FROM OLL;";

localDB.transaction(function(transaction){
         transaction.executeSql(query, [], function(tx, results){

             if (results.rows.length == 0) { 
                  tf = true;
                  alert ("table has "+results.rows.length+" rows. returning "+tf);
                 }   else    {
                  tf = false;    
                  alert ("table is not empty. returning "+tf); 
                 }                               
         }, errorHandler);              
});

alert ("return value is " + tf);

return tf;

}

1 个答案:

答案 0 :(得分:0)

根据您的评论和w3 page,查询发生异步。您的问题的解决方案实际上取决于您的js代码结构。

选项1:

tf移到函数外部(并在前面添加var)并在其前面完全删除返回和警报。当你的回调被调用时,它将改变tf的值,你的代码的其余部分可以引用它是正常的。

选项2:

根据this问题,您可以将您的调用(我假设的代码中的其他位置)从openDatabase更改为openDatabaseSync以启用同步操作。