我正在使用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”回调通常不存在,但是在这种情况下它无论如何也不会发生。
所以我的问题如下:
显示的错误如下:
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块的事实让我感到困扰,错误非常非常混乱。