SQLite.科尔多瓦.可以'插入的行数不得超过995行

SQLite. Cordova. Can't insert more than 995 rows

本文关键字:995行 插入 可以 SQLite      更新时间:2023-09-28

我使用的是:

  • iPhone 5S、iOS 8.1.3
  • 或任何iOS模拟器
  • Cordova 4.0.0,Ionic v1.0.0-beta.14
  • Cordova/PhoneGap SQLitePlugin

我使用带有Angular包装器的SQLite插件。函数self.insert()在表"stores"中插入一行。函数self.query()处理所有查询和可能的错误。控制器中的函数$scope.init()用于在表"存储"中插入20000行。

问题:仅插入前996行。没有错误。有时为995或997排。

注意:一切都可以在WebSQL(Chrome)中工作。所有20000行都已插入。

提前谢谢!

工厂1:

self.query = function(query, parameters) {
    return $cordovaSQLite.execute(db, query, parameters).then(function(result) {
       //console.log(result);
        return result;
    }, function (error) {
        console.log(error);
        return error;
    });
};

工厂2:

self.insert = function(shop) {
    var parameters = [shop.storeId, shop.storeName, shop.address, shop.post, shop.city, shop.lat, shop.lng, shop.open, shop.favorites];
    return DB.query("INSERT INTO stores (storeId, storeName, address, post, city, lat, lng, open, favorites) VALUES (?,?,?,?,?,?,?,?,?)", parameters);
};

控制器中的代码:

    $scope.init = function(){
        DB.query("DROP TABLE IF EXISTS stores");
        DB.query("CREATE TABLE IF NOT EXISTS stores (storeId integer,storeName text, address text, post text, city text, lat integer, lng integer, open text, favorites integer)");
        json_service.getJson().then(function(data){
            for (var i = 0; i < data.length; i++){
                for (var j = 0; j < data[i].data.shops.length; j++) {
                    var coordinates = data[i].data.shops[j].g.split(",");
                    var oneStore = {
                        storeId: i + 1, 
                        storeName: data[i].data.title,
                        address: data[i].data.shops[j].a,
                        post: data[i].data.shops[j].p,
                        city: data[i].data.shops[j].s,
                        lat: coordinates[0],
                        lng: coordinates[1],
                        open: data[i].data.shops[j].t[0],
                        favorites: 0
                    };
                    stores_service.insert(oneStore);
                }
            }
        });
    };

看起来像是Cordova sqlite存储错误#190,该错误在旧版本的Cordova ios上观察到,已在Cordova ios 3.8.0上解决。