Phonegap SQL抛出错误但无论如何都会成功

时间:2012-08-09 06:11:54

标签: android cordova

我目前正在使用Phonegap 2.0并在我的应用上运行sql事务。当应用程序启动时,我有以下代码(编辑以保护某些程序员的头脑)

document.addEventListener("deviceready", onDeviceReady, false);
var db;
function onDeviceReady() {
   db = window.openDatabase('gophersspots','1.0','Gophers Spots',200000);
   db.transaction(function(tx){
      tx.executeSql('CREATE TABLE IF NOT EXISTS search_history (searchval_what VARCHAR (500), searchval_where VARCHAR (500), date TIMESTAMP DEFAULT CURRENT_TIMESTAMP)');
   };
};

在我的某个页面的pagebeforechange代码中,我有以下事务:

db.transaction(function(tx){

tx.executeSql('SELECT * FROM gophers_search_history ORDER BY date DESC', [], function(tx,results){
          //Do some code here....let's call is Success A.



},function(err){
        alert("Error processing get search SQL: "+err);
        console.log(err.code);
        console.log(err.message);
    },function(){
        //alert("Database SQL query successful!");
    })

现在这是奇怪的事情。当我运行此查询时,弹出错误消息。我得到的代码是0,消息是     语句回调引发异常或语句错误回调没有返回false

但成功功能也在运行!成功函数A运行,它有结果,一切正常。我错过了什么吗?

不确定这是否相关,但我最近从Phonegap / Cordova 1.7.0升级到2.0.0。我还没检查文档,看看语法是否有变化,这将是我的下一步。只是想检查这里是否还有人有这个问题?

愿为我解决这个问题的人神秘地继承了啤酒厂和终身脱衣舞俱乐部会员资格。阿门。

1 个答案:

答案 0 :(得分:0)

管理修复它!事实证明,这毕竟不是SQL的问题。相反,listview插件被过早调用(这是上面代码中Success函数A的一部分)。