初めてレコードのフィールドを更新しようとしましたが、変数を使用して行を指定すると、更新が保存されません。
問題の背景 - ユーザーが画像をクリックすると、checkDone() 関数が呼び出され、行番号 (i) が渡されます。次に、グローバル変数 (glbID) を行 nbr (i) に設定し、updateDB 関数を呼び出して、指定した行のステータス フィールドを更新しました。エラーは発生しませんでしたが、フィールドが更新されていないことに気付きました。行IDをハードコーディングすると、更新が保存されました。しかし、glbID var と別の strID を使用して、それがフォーマット タイプの問題であるかどうかを確認しても、問題を解決できませんでした。他のいくつかのバリエーションを試してみましたが、役に立ちませんでした。
これに関する誰かの助けに感謝します。Androidエミュレーターでテストしています。分析に役立つ他の情報があれば教えてください。
function checkDone(i) {
var db = window.openDatabase("Database", "1.0", "GTKdb", 200000);
glbID = i //SET global variable to row nbr
document.getElementsByTagName("img")[i].src = "img/checkbox_checked.png";
db.transaction(updateDB, errorCB);
}
function updateDB(u) {
var strDone = "DONE"
var strID = "" + glbID; //SET new variable to glbID, converting to string to see if format type issue
u.executeSql('UPDATE USER set status = ? where id = ?', [strDone,"2"], successCB, errorCB); //THIS WORKS WHEN ID value hardcoded
//u.executeSql('UPDATE USER set status = ? where id = ?', [strDone,glbID], successCB, errorCB); //NO UPDATE using var glbID
//u.executeSql('UPDATE USER set status = ? where id = ?', strDone,strID], successCB, errorCB); //NO UPDATE using var strID
alert('AFTER UPDATE Status= '+status); //No value for status appears
}