Mam działającą transakcję bazy danych PhoneGap, w której mogę uruchomić kwerendę sql i przetworzyć wyniki. Jednak w celu umożliwienia ponownego użycia, muszę być w stanie przekazać argumenty do funkcji zapytań. Powinien istnieć lepszy sposób niż deklarowanie zmiennych globalnych i uzyskiwanie do nich dostępu/resetowanie w funkcji zapytania. Wdzięczni za każdą pomoc w konwersji to:jak przekazywać argumenty do funkcji transakcji bazy danych PhoneGap
//update images function
function updateGalleryCovers() {
var db = window.openDatabase("test db", "1.0", "Cordova DB", 200000);
db.transaction(queryDB_u_g, errorCB);
}
//Query the database
function queryDB_u_g(tx) {
var query = 'SELECT cover_img, objectId FROM USER_GALLERY WHERE userId="'+getUserId()+'"';
tx.executeSql(query, [], querySuccess_u_g, errorCB);
}
//Query success callback
function querySuccess_u_g(tx, results) {
var len = results.rows.length;
for (var i=0; i<len; i++){
// process results
}
}
do czegoś takiego:
//update images function
function updateGalleryCovers(userid) {
var db = window.openDatabase("test db", "1.0", "Cordova DB", 200000);
db.transaction(queryDB_u_g, userid, errorCB);
}
//Query the database
function queryDB_u_g(tx, userid) {
var query = 'SELECT cover_img, objectId FROM USER_GALLERY WHERE userId="'+userid+'"';
tx.executeSql(query, [], querySuccess_u_g, errorCB);
}
//Query success callback
function querySuccess_u_g(tx, results) {
var len = results.rows.length;
for (var i=0; i<len; i++){
// process results
}
}
Dzięki!
A dlaczego twój drugi przykład nie działa? Jestem pewien, że możesz przekazać zmienne do funkcji i użyć ich. – Leeish
@Leeish: Metoda phonegap Database.transaction() akceptuje nazwy funkcji, które wykonują zapytanie, a następnie nazwy funkcji wywołania zwrotnego. Nie ma przepisu na przekazywanie argumentów, które znam. http://docs.phonegap.com/en/2.3.0/cordova_storage_storage.md.html#Database – nikhilw
Pozwól mi spojrzeć na niektóre z mojego kodu ... – Leeish