2014-11-24 54 views
0

目前,我正在从服务器拉取JSON以将其放入webSQL数据库中之后循环插入查询。使用单个查询将多个记录插入到webSQL表中,对象数组中的数据

虽然这样做,我正在执行每个记录的SQL事务,这似乎非常低效,尤其是在移动设备上。

鉴于我有一个对应于每行所需值的对象数组,我怎样才能做到这一点没有循环?或者只是简单地循环播放会更好?

粗略地说我有以下格式的数组:

[{"Timestamp": 323343553, 
    "ID": 1, 
    "Value1": "string" 
    "Value2": 322}, ... more objects 
] 
+0

你在事务中做循环。 – 2014-11-24 21:13:49

+0

不确定你的意思,你有一个事务内循环的例子吗? – OliverJ90 2014-11-24 21:18:32

+0

显示您的代码。 – 2014-11-25 07:39:46

回答

0

由于氯告诉你可以循环插入SQL命令到如下一个事务。

var db = openDatabase('mydb', '1.0', 'my first database', 2 * 1024 * 1024); 

db.transaction(function (tx) { 
    tx.executeSql('CREATE TABLE user (id INTEGER PRIMARY KEY AUTOINCREMENT,name)'); 
}); 

var userArray = [{"name": "bob"}, { "name": "lee"}]; 

db.transaction(function (tx) { 
    for (var i = 0; i <userArray.length; i++) 
    { 
     tx.executeSql("insert into user(name) values(?)", [userArray[i].name],successCallBack,errorCallBack); 

    } 
}); 


function successCallBack(){ 
    console.log("inserted corrrectly !!"); 
} 
function errorCallBack(tx,error){ 
    if (query.indexOf('insert into') === -1) 
       alert("Error : " + error.message + " in " + query); 
    console.log(error.message + "in" + tx); 
} 
相关问题