AIR SQLite – Création d'une base de données SQLite
Dans le dernier article, on a vu que l'on pouvait ouvrir sa base SQLite de manière synchrone ou asynchrone, chaque méthode ayant ses avantages et ses inconvénients.
Pour créer une nouvelle base de donnée, il vous faudra d'abord créer une nouvelle instance de SQLConnection.
Pour ouvrir la connexion, vous utiliserez ensuite les méthodes open() (synchrone) ou openAsync() (asynchrone). A chacune de ces méthodes, vous devrez fournir un argument de type File. Si cet argument fait référence à un fichier non-existant, les méthodes open() et openAsync() vont créer un fichier automatiquement et ouvrir la connexion directement.
Fichier de référence et conventions de nommage
Notez que le fichier qui va contenir la base de donnée peut être nommé de n'importe quelle manière (valide pour un fichier) avec n'importe quelle extension. Classiquement, on nomme ces fichiers ".db" même s'il est plus clean de lui donner l'extension ".sqlite" qui va permettre une ouverture automatique dans certains gestionnaires de BDD.
Notez aussi que si vous ne passez pas ce paramètre mais que vous passez "null", la base sera créée en mémoire et pas sur le disque. A la fermeture de l'application par l'utilisateur, il n'y aura donc aucun moyen de récupérer les informations enregistrées dans la base
Créer une BDD SQLite en mode synchrone
L'exemple de code suivant va créer et ouvrir une base nommé "DBSample.db" en mode synchrone.
<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml"
applicationComplete="onAppComplete();">
<mx:Script>
<![CDATA[
import flash.data.SQLConnection;
import flash.events.SQLErrorEvent;
import flash.events.SQLEvent;
import flash.filesystem.File;
private var _sqlConnection:SQLConnection = null;
private function onAppComplete():void {
_sqlConnection = new SQLConnection();
var dbFile:File = File.applicationStorageDirectory.resolvePath("DBSample.db");
try{
_sqlConnection.open(dbFile);
trace("the database was created successfully");
}catch (error:SQLError){
trace("Error message:", error.message);
trace("Details:", error.details);
}
// votre BDD est accessible ici
}
]]>
</mx:Script>
</mx:WindowedApplication>
Créer une BDD SQLite en mode asynchrone
Voici le même exemple mais en mode asynchrone.
<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml"
applicationComplete="onAppComplete();">
<mx:Script>
<![CDATA[
import flash.data.SQLConnection;
import flash.events.SQLErrorEvent;
import flash.events.SQLEvent;
import flash.filesystem.File;
private var _sqlConnection:SQLConnection = null;
private function onAppComplete():void {
_sqlConnection = new SQLConnection();
_sqlConnection.addEventListener(SQLEvent.OPEN, openHandler);
_sqlConnection.addEventListener(SQLErrorEvent.ERROR, errorHandler);
var dbFile:File = File.applicationStorageDirectory.resolvePath("DBSample.db");
_sqlConnection.openAsync(dbFile);
}
private function openHandler(event:SQLEvent):void {
trace("the database was created successfully");
// votre BDD est disponible à partir d'ici
}
private function errorHandler(event:SQLErrorEvent):void {
trace("Error message:", event.error.message);
trace("Details:", event.error.details);
}
]]>
</mx:Script>
</mx:WindowedApplication>
Votre base de données est maintenant ouverte et connectée. Avant d'y introduire des données, il vous faudra créer des tables de stockage, ce que nous allons voir dans le tutorial suivant.
Articles similaires
- AIR SQLite – Création de tables SQLite et types de données
- AIR SQLite – Embarquer une base SQLite pré-remplie dans une application AIR
- AIR Mobile – Application Pokémon (3) – Ouverture de la BDD SQLite
- AIR SQLite – Utilisation des transactions (begin / commit / rollback) en synchrone
- AIR SQLite – Utilisation des transactions (begin / commit / rollback) en asynchrone
Aucun trackbacks pour l'instant






2 mars 2011
Salut,
connaitrais-tu un sqlite manager air qui soit cappable d'ouvrir une base encrypté en lui passant la clé de 16 caractères qu'on passe en paramètres de la fonction flash.data.SQLConnection.open()
merci
2 mars 2011
Salut,
je n'en ai pas testé beaucoup, donc je ne sais pas trop
Fabien
2 mars 2011
bon tant pis, vais me coder un microfrontal pour mon besoin, ça va être moche, mais ce sera mieux que rien
merci quand même