新事务正在等待打开操作sqlite

问题描述 投票:4回答:2

我正在使用这个插件: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 s​​qlite存储插件”

我的Cordova Android版本是:4.1.1

android sqlite cordova
2个回答
2
投票

我在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


-1
投票

在创建表之前需要使用延迟,例如:

 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);
© www.soinside.com 2019 - 2024. All rights reserved.