我正在使用这个插件:https://github.com/litehelpers/Cordova-sqlite-storage
在进行数据库事务时,我的项目中遇到了上述问题。实际上我的项目中同时有很多来自js和java end的事务。
下面是我的代码(只有一个查询):
function createTable(latWS,longWS,empId) {
window.sqlitePlugin.openDatabase({name: 'test.db', location: 'default'}, function(db) {
db.transaction(function(tx) {
tx.executeSql('CREATE TABLE IF NOT EXISTS test (loc_emp_lat, loc_emp_long, loc_emp_accuracy, loc_emp_local_time)');
}, function(err) {
console.log('Open database ERROR: ' + JSON.stringify(err));
});
});
setTimeout(insertIntoLogTable(latWS,longWS,empId),500);
}
我已经检查过,它没有出错信息。
我正在使用的版本:cordova-sqlite-storage 1.4.7“Cordova sqlite存储插件”
我的Cordova Android版本是:4.1.1
我在Android上与react-native-sqlite-storage(基于Cordova-sqlite-storage)有同样的问题。
createFromLocation
参数负责弄乱事情。在两个平台上仅使用name
参数就足够了。
这就是我在Android和iOS上使用的内容:
SQLite.openDatabase({ name: "dbname.sqlite"});
在Android 7.0上,数据库将保存到/data/data/com.mypackage/databases/dbname.sqlite
。
在创建表之前需要使用延迟,例如:
window.sqlitePlugin.openDatabase({name: 'test.db', location: 'default'});
setTimeout(function(){
tx.executeSql('CREATE TABLE IF NOT EXISTS test (loc_emp_lat, loc_emp_long, loc_emp_accuracy, loc_emp_local_time)');
},4000);