2012-08-09 25 views
2

我目前使用Phonegap 2.0并在我的应用程序上运行SQL事务。当应用程序启动时,我有以下代码(编辑以保护某些程序员的母鹿)Phonegap 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。我还没有检查文档以查看语法是否发生了变化,这将成为我的下一步。只是想检查这里是否有人也有这个问题?

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

+0

将Try Catch中的代码包装起来,并从异常对象中看到错误字符串 – 2012-08-09 06:14:24

+0

@HamzaWaqas试过了,它给了我一些进展。在try-catch中包装整个SQL事务不起作用,但只包装成功函数。谢谢! – 2012-08-09 10:32:18

+0

快乐。总是尝试打包代码以获取错误字符串。 – 2012-08-09 17:31:20

回答

0

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

+0

所以,这是你的错误,还是你说PhoneGap API有一个错误? – 2013-02-24 19:12:16

+0

这是我的错误,IIRC。 – 2013-02-27 10:49:58

+0

@AshMenon我可以知道你改变了什么工作,因为我也有同样的问题,并努力解决它。 – Beginner 2013-05-14 13:20:29