2012-02-20 3 views
1

Я нахожу, что для передачи переменной в мою таблицу базы данных мне нужно создать переменную как глобальную, что я бы предпочел не делать. Однако я не могу понять, как получить переданную переменную без использования анонимной функции вместо «updateSelectedBird».UPDATE SQLite table, 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

Эй, у меня была одна и та же проблема, но я нашел работу вокруг, вы должны использовать неприятные функции самозаведения. Раздражает =/

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. 
     }); 
     })(); 
    } 
} 

Я имел этот вопрос, потому что я хотел, чтобы проверить, если существуют данные в уже таблице, в то время как peforming синхронизацию с сервером. (Мне нужно было проверить, был ли rowID там уже или нет, поскольку вы можете создавать вещи с телефона до!) - это стало сложной ситуацией. И теперь я беспокоюсь о потреблении памяти =/

Надеюсь, что это поможет вам, однако

Смежные вопросы