AIR SQLite – Insertion de données dans une table avec INSERT (unique et multiples)
Dans un tutorial précédent, on a vu comment récupérer les données d'une base SQLite à l'aide d'une instruction SELECT. Voyons maintenant comment réaliser une insertion en base de donnée.
Pour effectuer une insertion, le code est toujours le même, seule la syntaxe de la requête SQL est différente. On va ici utiliser une instruction INSERT dont vous pouvez trouvez la documentation ici:
http://sqlpro.developpez.com/cours/sqlaz/dml/
La syntaxe généralisée est la suivante:
INSERT [INTO] nom_de_la_table_cible [(liste_des_colonnes_visées)]
{VALUES (liste_des_valeurs) | requête_select | DEFAULT VALUES }
L'exécution du SQLStatement en elle-même reste la même, suivant si vous êtes en synchrone ou en asynchrone. Pour cela, regarder les 2 exemples de code du tutorial suivant:
AIR SQLite – Création de tables SQLite et types de données
Votre chaîne SQL sera de la forme:
var sql:String =
"INSERT INTO employees (firstName, lastName, salary) " +
"VALUES ('Bob', 'Smith', 8000)";
insertStmt.text = sql;
où "employees" est le nom de la table; firstName, lastName et salary, les noms de colonne de cette table et "Bob, "Smith", 8000, les valeurs à insérer correspondantes.
Cette méthode vous permet d'insérer une seule ligne.
Insertion de plusieurs lignes (rows)
On vient de voir l'exemple le plus simple par lequel on peut insérer un seul enregistrement. Mais votre application aura peut-être besoin d'insérer plus d'une ligne à la fois.
Pour insérer plusieurs lignes (N), il y a 3 grandes méthodes:
- Utiliser N fois la méthode INSERT INTO, dans une transaction
- Utiliser la méthode INSERT INTO avec comme VALUES, le résultat d'un SELECT
- Utilisation d'un UNION ALL comme décrit dans ce tutorial SQL SERVER – Insert Multiple Records Using One Insert Statement – Use of UNION ALL (non testé mais la compilation de la requête par la BDD devrait être assez longue, préférer la solution 1 ou 2)
La première méthode est la plus simple. On verra dans un prochain tutorial comment et pourquoi on doit utiliser des transactions SQL pour ces types de traitement. La deuxième méthode vous oblige à avoir vos données à insérer dans une autre table, sur laquelle vous allez faire un SELECT.
Pour faire simple, si vous entrez des données qui se trouvent déjà dans une autre table (copie), utiliser INSERT INTO avec SELECT. Si vous avez des valeurs entrées par un utilisateur par exemple, utiliser un INSERT INTO dans une transaction avec une requête SQL paramétrée. Pour cela, s'inspirer du tutorial suivant:
AIR SQLite – Utilisation de requête paramétrée (SQLStatement parameters)
Articles similaires
- AIR SQLite – Exécution de requêtes SQL SQLStatement et syntaxe
- AIR SQLite – Enregistrer des objets ActionScript dans une base SQLite
- AIR SQLite – Utilisation de requête paramétrée (SQLStatement parameters)
- AIR SQLite – Récupérer la primary key d'une ligne venant d'être insérée
- AIR SQLite – Utilisation des transactions (begin / commit / rollback) en synchrone






25 juin 2011
Le dernier lien (AIR SQLite – Utilisation de requête paramétrée (SQLStatement parameters)) est mauvais
26 juin 2011
Bien vu, c'est corrigé !
Merci,
Fabien