I am having problems with a piece of code that reads records from a table and inserts data in another table. It doesn't execute all the sql transactions.
Here is the code:
$(".btnRepetePed").live("click",function(){
var pedido = $(this).val();
db.transaction(function(tx){
console.log("Pedido:" + pedido);
tx.executeSql("SELECT p.pedido,p.cliente,p.obs,p.talao,p.obs,p.prazo,p.polvenda,p.datafat, p.tipo,p.valortotal,p.situacao,p.datacri,p.icms,p.cod_bonif,p.desc_bonif,p.cod_troca, pp.produto, pp.valor, pp.qtd, prod.peso, prod.descricao ,pp.desconto, pp.uni_embut, pp.quantidade FROM pedidos p INNER JOIN pedidos_produtos pp ON p.pedido = pp.pedido INNER JOIN produtos prod ON pp.produto=prod.codigo WHERE p.pedido=? ", [pedido], function(tx, rs){
var sql = "INSERT INTO carrinho (produto,descricao, peso, qtd, valor, desconto) VALUES(?,?,?,?,?,?)";
var len = rs.rows.length;
console.log("size:"+len);
var i = 0;
for(i=0;i<len;i++){
dados = [rs.rows.item(i).produto, rs.rows.item(i).descricao, rs.rows.item(i).peso,rs.rows.item(i).qtd, rs.rows.item(i).valor, rs.rows.item(i).desconto];
console.log(i);
(function(dados, sql) {
db.transaction(function(tx){
tx.executeSql(sql,dados,function(){
console.log(JSON.stringify(dados));
},function(e){
console.log("Código erro "+e.code);
console.log("Código erro "+e.message);
});
});
})(dados,sql);
}
alert("Finished");
goURL("pedidos.html#novoPedido");
},fail);
});
And here is the output from the console:
- D/CordovaLog(17822): size:4
- D/CordovaLog(17822): 0
- D/CordovaLog(17822): 1
- D/CordovaLog(17822): 2
- D/CordovaLog(17822): 3
Fine up to here. There are 4 records and "console.log(i);" is executed 4 times.
Only after I touch the OK button from the 'alert("Finished");' command the following logs from the transactions are displayed:
- D/CordovaLog(17822): [1010012,"F.TRIGO T1 MARIA INES C/FERMENTO 1KG",1,1,1.76,null]
- D/CordovaLog(17822): [1020011,"F.TRIGO T1 REDE MACRO 5kg",5,2,6.53,null]
- D/CordovaLog(17822): [1020004,"F.TRIGO T1 FLOCOS DE NEVE 1kg",1,112,1.3,null]
Sometimes it displays 2, sometimes 3 transaction logs, but it never executes all 4 transactions
I'm lost. Any ideas?