AIR SQLite – Exécution de requêtes SQL SQLStatement et syntaxe
Dans le tutorial précédent, on a vu comment créer une table dans notre base SQLite AIR. Maintenant que votre table (ou vos tables) est prête à recevoir des données, nous pouvons effectuer des requêtes SQL pour manipuler la données (création, suppression, mise à jour, …).
Si vous avez réussi à créer votre table, cela signifie que vous avez déjà réussi à exécuter une requête SQL. Le fonctionnement sera le même pour les autres requêtes en mode asynchrone ou synchrone. Le seul point qui va changer est le "text" de votre requête SQL.
Encore une fois, il va falloir que vous connaissiez le langage SQL et ses nombreuses fonctionnalités.
Process d'exécution d'une requête SQL (SQLStatement)
Voici les grandes étapes de la construction à l'exécution d'une requête SQL. Certains points devront être adaptés à votre application mais globalement le process reste le même.
1) Créer une instance de SQLStatement
Pour exécuter notre requête, on va l'encapsuler dans un objet AS3 nommé SQLStatement:
var selectData:SQLStatement = new SQLStatement();
2) Spécifier la base de données sur laquelle jouer la requête
Pour cela, on utilise la propriété sqlConnection de SQLStatement pour lui passer une valeur de type SQLConnection:
selectData.sqlConnection = mySqlConnection;
Pour la création de SQLConnection, veuillez vous référer à l'article suivant: AIR SQLite – Création d'une base de données SQLite
3) Spécifier la requête SQL
Pour spécifier la requête, vous allez utiliser la propriété "text" de SQLStatement:
selectData.text = "SELECT col1, col2 FROM my_table WHERE col1 = :param1";
On verra plus tard la signification de la notation ":param" qui va nous permettre de paramétriser notre requête.
4) En mode asynchrone, définir des fonction pour récupérer le résultat / les erreurs
Dans le cas d'une utilisation en mode asynchrone, vous devrez ajouter des listeners. Pour un exemple, voir ce tutorial Flex:
AIR SQLite – Création de tables SQLite et types de données
5) Assigner les paramètres si besoin est
Si votre requête est paramétrisée, il vous faudra assigner les valeurs des paramètres comme par exemple:
selectData.parameters[":param1"] = 25;
6) Exécution de la requête SQL
Pour exécuter la requête SQL, il suffit d'appeler sa méthode execute:
selectData.execute();
Dans le cas d'une exécution synchrone, il ne faut pas oublier d'entourer cette instruction d'un bloc try / catch.
Syntaxe des requêtes SQL
Pour exécuter des requêtes SQL, encore faut-il savoir les écrire. La plupart des opérations / opérateurs SQL sont supportés.
Si vous avez un doute sur la syntaxe, il y a une page complète de la Livedocs qui y est consacrée. Au lieu de tout vous recopier dans cet article, mieux vaut donc vous penchez dessus:
Des classiques (SELECT, INSERT, UPDATE) aux plus avancés (TRIGGER, fonctions), vous verrez qu'AIR 2.5 supporte la grande majorité des instructions.






27 janvier 2011
Merci pour ces tutos !
A noter que l'instruction TRUNCATE n'est pas supportée…
On peut utiliser DELETE FROM, mais ça ne réinitialise pas l’auto-incrément des champs.
As-tu une astuce à ce sujet ?
27 janvier 2011
Salut Nicolas,
Merci pour cette précision. Je n'ai pas d'astuce à te proposer, pour te dire, j'écris ces tutos en même temps que j'apprends AIR SQLite. On dirait que si tu veux remettre à jour ton auto-increment, tu es obligé de drop puis de recréer la table.
Fabien
27 janvier 2011
Bonjour amis Flexeurs,
Pour un projet AIR, qui demandait de garder des données de services en cache, j'ai dû appréhender tous les mécanismes CRUD de SQLite. C'est franchement pas mal malgré quelques limites. Mais on ne va pas en demander de trop non plus a une base embarquée
En tout cas pour les phases de tests je vous conseille vivement l'application Lita de David Dehaedt http://www.dehats.com/drupal/?q=node/58
Bonne continuation Fabien
27 janvier 2011
Salut Alexandre,
. J'ai aussi été agréablement surpris de l'efficacité de ces bases lors du dev d'applications mobiles.
c'est une bonne nouvelle
Fabien