2

我目前正在使用 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。我还没有检查文档以查看语法是否发生了变化,这将是我的下一步。只是想检查这里是否有人也有问题?

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

4

1 回答 1

0

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

于 2012-08-10T03:58:02.010 回答