0
- iPhone 5S,的iOS 8.1.3
- 或任何iPhone模拟器
- 科尔多瓦4.0.0,离子V1.0.0-β。 14
- Cordova/PhoneGap SQLitePlugin
我用角包装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);
}
}
});
};
你为你的数据库设置了多大的大小?看起来您正在为995条记录添加配额上限,但有时会稍微增加或减少一点,因为每条记录的大小在每次测试之间会有所不同。 [确定HTML5数据库内存使用情况](http://stackoverflow.com/questions/3899983/determining-html5-database-memory-usage) – 2015-04-14 17:26:58
我正在使用SQLite数据库,而不是HTML5。 – blablapolicja 2015-04-15 18:43:26
啊对了。我正在研究SQLite并对其进行研究。我正在模糊两者之间的界限。 – 2015-04-16 20:12:19