Phonegap websql删除查询无法在for循环中工作

时间:2016-07-04 10:45:35

标签: angularjs cordova phonegap-build web-sql

我正在使用angularjs,phonegap和webSQL开发基于表单的应用程序。应用程序支持在两个网络状态下在线或离线提交表单。

网络在线模式: 所有提交的数据都直接发布到api。不需要webSQL事务。

网络离线模式:

提交的所有数据都保存到websql数据库表中,称为脱机数据为JSON字符串。

CREATE TABLE IF NOT EXISTS offline_data (id INTEGER PRIMARY KEY AUTOINCREMENT,data TEXT);

现在当网络联机时,offline _data表中的所有数据都提交给api并从表中删除。但它只删除使用api提交给服务器的第一条记录,即使在使用api成功保存到服务器后也不会删除下一条记录。 这是我用于将数据从webSQL表同步到服务器的代码。

DB.transaction(function(tx) {
tx.executeSql("SELECT * FROM offline_data", [], function (tx, results) {
    var recordSetlength = results.rows.length;
    if (recordSetlength) {
        for (var i = 0; i < recordSetlength; i++) {
            var v = results.rows.item(i);
            Client.save(v.data, function (response) {  // submits the data to server using api
                if (response.success) { // If server response contains success=true [data saved successfully]
                    DB.transaction(function (tx) {
                        tx.executeSql("DELETE FROM offline_data WHERE id = ?", [v.id], function (tx, result) {
                        }, function (tx, error) {
                        });
                    });
                } else {
                    $scope.alertClass = "warning";
                    $scope.alertMessage = response.message;
                }
            }, function (error) {
            });
        }
    }
});
});

有什么问题?

0 个答案:

没有答案