2012-02-20 6 views
1

私はデータベーステーブルに変数を渡すために、変数をグローバルとして作成しなければならないことを知っています。しかし、私は "updateSelectedBird"の代わりに無名関数を使用せずに変数を渡す方法を理解できないようです。UPDATE SQLiteテーブル、JS、PhoneGap、変数渡し

updateBirds(3); //this is normally called from within another function 

function updateBirds(_birdIndex) { 
    var db = window.openDatabase("birdingDB", "1.0", "Birding DB", 200000); 
    birdIndex = _birdIndex; 
    db.transaction(updateSelectedBird, errorSelBirds); 
} 

function updateSelectedBird(tx) { 
    tx.executeSql('UPDATE Birds SET sighted = "1" WHERE id = ' + birdIndex); 
} 

function errorSelBirds(err) { /*error function*/ } 

助けてください。

答えて

0

私は同じ問題を抱えていましたが、厄介な自己呼び出し関数を使用する必要があります。迷惑= /私は、サーバーからの同期をpeformingながらデータは、すでにテーブルに存在しているかどうかを確認したかったので、私は、この問題を持っていた

db_callback = function(tx) { 
    for(var x in data) { 
    (function() 
     var _tmpX = x; 
     tx.executeSql("select from bla bla bla", [], function(tx2, result) { 
      console.log(_tmpX); //atleast this time it increments and isn't the last key of the data collection. 
     }); 
     })(); 
    } 
} 

。 (私はあなたが電話から物事を作成することができるので、rowIDがすでにそこにあるかどうかを確認する必要がありました!) - それは手間のかかる状況になりました。そして今、私はメモリ消費について心配しています。/

希望すると助かります