2016-04-11 20 views
0
dbShell.transaction(function(tx) { 
     for (var i=0; i< data.length; i++){ 
      var sql ="Insert into students(studentid,name) SELECT '"+ data.studentid +"', '"+ data.name +"' WHERE NOT EXISTS(SELECT * FROM students WHERE studentid ='" + data.studentid +"')"; 
          tx.executeSql(sql, [], nullHandler,dbErrorHandler); 
      } 
    }); 

Verileri (öğrenci listesi) json biçiminde alıyorum. Sunulan verileri döngüleyerek sqlite phonegap'e sorgu ekliyorum. Ancak insert ifadesi bazı kayıtlarla aynı değil. İşlemin tamamlanmadığı için hissediyorum.SQLite Phone Gap db işlemi ekte kaydedilen bazı kayıtları kaydetmiyor

Lütfen birisi bana bu sorguda yanlış yaptığımı açıklayabilir mi?

Yardımlarınız için teşekkürler. insert kodu aşağıdaki

cevap

0

Kullanım:

dbShell.transaction(function(tx) { 
    for (var i=0; i< data.length; i++){ 
     var sql ="Insert into students(studentid,name) values(?,?)"; 
     tx.executeSql(sql, [data[i].studentid, data[i].name], successHandler,errorHandler); 
    } 
}); 

Sen successHandler ve errorHandler

+0

nullhandler'ı sueresshandler ile değiştirmek ne fark eder? Ekleme yürütüldüğünde herhangi bir şey yapmak istemiyorum ama sadece bir sonraki ekleme deyimini yürütün. – mev9669

+0

successHandler, sorgu eklendikten sonra bir işlem yapmak istediğinizde gereklidir. Successhandler kullanmıyorsanız, sorgu yürütme işleminin başarıyla tamamlandığını bilmeniz mümkün olmayacaktır. – Krunal

+0

Benim nullhandler sadece adlandırma arkadaşı başarı işleyicisidir. Sorunu buldum. Ve zaten cevapladı. – mev9669

0

eklemem gerekiyor ben cevap buldu. Sorun aldığım json verisinde oldu. İsimlerinden biri, adında 'tek alıntı' içeriyordu. Bu, sorgunun başarısız olmasına neden oldu.

İlgili konular