SQLite查询

时间:2016-01-05 20:13:58

标签: angularjs sqlite cordova ionic

我正在使用Apache Cordova这是一个混合移动应用程序平台。我正在使用以下插件cordova-sqlite-storage来处理我的SQLite。语法与WebSQL完全相同。

考虑到这与AngularJS一起使用我在工厂中设置了数据库,以下是我总是调用一个查询来对我的数据库运行而没有任何问题:

    query: function(query, params, callback) {
        try {
            factory.database.transaction(function(tx) {
                if(callback) tx.executeSql(query, params, callback, function(transaction, error) { console.log("ERROR"); });
                else tx.executeSql(query,params);
            });
        } catch (e) {
            console.log("ERROR: ", JSON.stringify(e));
        }
    }

然而今天,一切都改变了。请注意,“ERROR”回调通常不存在,但是在这种情况下它无论如何也不会发生。

所以我的问题如下:

  1. 查询没有执行,或者我相信,因为应用程序在此时挂起。
  2. 查询不会触发失败或成功回调。
  3. 使用非常无法解释的错误触发catch块。 (至少我自己)。
  4. 显示的错误如下:

    ERROR: , {"line":29,"column":21,"sourceURL":"http://10.0.0.20:8100/js/factories/database.js"}
    

    对于任何对此计划感兴趣的人都有以下内容..

    表格

    tx.executeSql("CREATE TABLE IF NOT EXISTS messages (message_id INTEGER PRIMARY KEY, content VARCHAR NOT NULL, message_to INTEGER NOT NULL, message_from INTEGER NOT NULL, message_sent INTEGER, message_inserted INTEGER, message_type INTEGER DEFAULT (0));");
    

    插入查询

    "INSERT INTO messages (message_id, content, message_to, message_from, message_sent, message_inserted) VALUES (?, ?, ?, ?, ?, ?);"
    

    插入参数

    [message.id, message.content, message.to, message.from, message.time, Math.floor(new Date().getTime() / 1000)]
    

    我已经验证所有参数都是正确的,并使用正确的表格格式。它们都没有未定义或为空。

    这个问题引发了try / catch块的事实让我感到困扰,错误非常非常混乱。

0 个答案:

没有答案