2015-02-11 30 views
0

我使用:SQLite。科尔多瓦。无法插入超过995行

我用角包装SQLite的插件。功能self.insert()在表格“商店”中插入一行。功能self.query()可处理所有查询和可能的错误。 控制器中的函数$scope.init()用于在表“stores”中插入20000行。

问题: 只插入了前996行。没有错误。有时995或997行。

注意: 一切工作在WebSQL(铬)。所有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); 
       } 
      } 
     }); 
    }; 
+0

你为你的数据库设置了多大的大小?看起来您正在为995条记录添加配额上限,但有时会稍微增加或减少一点,因为每条记录的大小在每次测试之间会有所不同。 [确定HTML5数据库内存使用情况](http://stackoverflow.com/questions/3899983/determining-html5-database-memory-usage) – 2015-04-14 17:26:58

+0

我正在使用SQLite数据库,而不是HTML5。 – blablapolicja 2015-04-15 18:43:26

+0

啊对了。我正在研究SQLite并对其进行研究。我正在模糊两者之间的界限。 – 2015-04-16 20:12:19

回答