PhoneGap アプリケーションの SQLite クエリに問題があります。フォルダーを開き、フォルダー内のすべてのエントリに対して where 句を使用して選択します。選択クエリの後に for ループを開きますが、スクリプトはすべてのエントリに同じ変数を使用します (最後のレコードの変数のみを記憶します)。ループはエントリの数を正しく読み取りますが、1 つのレコードの変数でのみ機能し、これらの変数のみでフォルダー内のファイルの数だけ機能します。
function readerSuccess(entries) {
var db = window.openDatabase("Test", "1.0", "Demo test", 200000);
db.transaction(function(tx) {
var i;
for (i=0; i<entries.length; i+=1) {
var imgName=entries[i].name;
var upfi=entries[i];
console.log(imgName);
tx.executeSql("SELECT * FROM FOTO WHERE img=?", [imgName], function(tx, result) {
console.log(imgName+" after SQL");
var dataset = result.rows;
console.log("Returned rows = " + dataset.length);
if (dataset.length==0) {
console.log('No rows!');
console.log('File sync: '+imgName);
} else {
console.log('File already sync: '+imgName);
};
}, successCB, errorCB)}}, successCB, errorCB);
};
グローバル変数またはローカル変数を使用してテストしましたが、成功しませんでした。どこを向いたらいいのかわからない!! :(