Bonjour � tous,
Je suis nouveau sur ce forum, bien que je le consulte r�guli�rement (regorgeant d'informations tr�s utiles). Aujourd'hui, j'ai grand besoin de votre aide car je bute sur un probl�me qui me parait simple mais dont je n'arrive pas � trouver la solution :
Voici le code ( simplifi� ) :
Dans le code ci-dessus, je d�clare tout d'abord une variable "n" que je souhaite incr�menter pour chaque r�sultat d'une requ�te SQLite. Etant d�clar�e � l'ext�rieur de dataHandler(), cette fonction y a donc acc�s, l'incr�mentation se fait bien en mode debug mais � la sortie de la fonction, n = 0.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 db.transaction( function( transaction ) { var n = 0; var dataHandler = function( transaction, result ) { for( var i = 0; i < result.rows.length; i++ ) { n++; // n est bien incrémenté } }; transaction.executeSql( "select ...", [], dataHandler, errorHandler ); alert( n ); // affiche 0 });
Si quelqu'un saurait me dire o� est mon erreur. Merci (test� sous Safari / Chrome)
[edit]
Bon, j'ai un peu avanc�: en ajoutant un alert() � la fin du dataHandler :
Dans l'ordre, j'ai un alert( 0 ) suivi d'un alert( 5 ) ce qui me laisse penser que la fonction dataHandler est ex�cut�e � la fin de la transaction, ce qui finalement semble logique.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 db.transaction( function( transaction ) { var n = 0; var dataHandler = function( transaction, result ) { for( var i = 0; i < result.rows.length; i++ ) { n++; // n est bien incrémenté } alert( n ); // affiche 5 }; transaction.executeSql( "select ...", [], dataHandler, errorHandler ); alert( n ); // affiche 0 });
Partager