Android上的Phonegap SQLite事务崩溃

时间:2013-08-15 13:14:25

标签: android sqlite crash cordova

我需要在SQLite数据库中插入大量数据。我使用交易。没有这些交易,我很遗憾没有机会填补这些表格。我的代码是这样的:

database.transaction(function(transaction) {
    for(var i = 0; i < 300; i++) {
        sql = "INSERT INTO test (fielda, fieldb, fieldc) VALUES (111, 1, 23.53)";
        transaction.executeSql(sql, function(result) {

        });
    }
}, function() {
    database.transaction(function(transaction) {
        for(var i = 0; i < 300; i++) {
            sql = "INSERT INTO test (fielda, fieldb, fieldc) VALUES (111, 1, 23.53)";

            transaction.executeSql(sql, function(result) {

            });
        }
    }, function() {
               .................and so on..............
        alert("done");
    }, function(error) {
        alert("error");
    });
}, function(error) {
    alert("error");
});

它可以在我的iPad 2上快速轻松地工作,但在我的Galaxy Tab 3上崩溃的速度同样快。似乎连续交易的次数无关紧要,但它们必须完全执行的插入次数。总是在第900个入口附近崩溃。这意味着它在第4次交易中崩溃,其中i&lt; 300但是需要10次交易,其中i&lt; 100崩溃。

我甚至尝试通过单击一次按钮调用3个事务,然后等待超过十分钟并通过单击另一个按钮调用第四个事务。它仍然崩溃。

还有其他奇怪的事情发生: 当我在调用事务之前的某个时刻调用“DELETE FROM test”时,应用程序会抛出错误消息“无法执行此操作,因为没有当前事务”。就在它崩溃之前,然后在交易期间。但只有这样。

我已经玩过每一个PRAGMA,比如page_size,journal_mode等。它不会改变一件事。

0 个答案:

没有答案