,

Base de données dans AIR - 2ème partie : créer et se connecter à une base de données

Seconde partie de cette série d'article sur SQLite et AIR : créer et se connecter à une base de données.

Comme précédemment, vous allez voir que tout est déjà prévu et vraiment très simple. Tout se fait en quelques étapes : instanciation de la classe File, création du fichier de base de données, ouverture de la connexion.

Etape 1 : instanciation de la classe File

La première étape consiste à faire appel à la classe File afin de créer le répertoire dans lequel se situera notre base de données.
Air stocke les informations de l'application (base de données, images, etc) dans un répertoire propre à l'application elle même. Afin de retrouver ce dossier, deux lignes de codes suffisent :


var appStorage = air.File.applicationStorageDirectory.nativePath;
air.Introspector.Console.log("Dossier de l'application : " + appStorage);

Résultat en image dans la console de débuggage de AIR :


appStorage.png

Mais revenons à nos moutons et créons donc notre répertoire :


// Constantes
var DB_FOLDER = "db";

// creation du repertoire
var dbFolder = air.File.applicationStorageDirectory.resolvePath(DB_FOLDER);
dbFolder.createDirectory();

On initialise une constante avec le nom que nous souhaitons donner à notre répertoire. La variable dbFolder instancie la classe File avec ce nom. L'instruction createDirectory() crée le répertoire. Et voilà !

Etape 2 : création du fichier de base de données

Cette seconde étape est tout aussi simple que la première : on définit une constante pour notre nom de fichier de base de données et ensuite... on le crée.


// Constantes
var DB_FOLDER = "db";
var DB_NAME = "maBase.db";

// creation du repertoire
var dbFolder = air.File.applicationStorageDirectory.resolvePath(DB_FOLDER);
dbFolder.createDirectory();

// creation de la base
var mainDB = dbFolder.resolvePath(DB_NAME);

Il ne nous reste plus qu'à établir la connexion avec notre base de données.

Etape 3: ouverture de la connexion

La connexion à une base de données dans AIR peut se faire de deux façons différentes : synchrone et asynchrone.
Lors de l'exécution d'une connexion synchrone, l'application est mise "en pause" le temps qu'elle soit terminée. Autrement dit, elle empêche l'utilisateur d'interagir avec l'application.
En revanche, la connexion asynchrone permet d'exécuter des opérations avec la base de données tout en gardant l'application active.

Pour ces deux types de connexion, deux méthodes :

  • open()
  • openAsync()

Cette dernière étape va se passer en deux temps : connexion SQL et ouverture de notre base.

Après mise à jour du code précédent, nous arrivons à ce résultat :


// Constantes
var DB_FOLDER = "db";
var DB_NAME = "maBase.db";

// creation du repertoire
var dbFolder = air.File.applicationStorageDirectory.resolvePath(DB_FOLDER);
dbFolder.createDirectory();

// creation de la base
var mainDB = dbFolder.resolvePath(DB_NAME);


// connexion a la base
var dbConnect = new air.SQLConnection();

try {
    // opening DB
    dbConnect.open(mainDB);
    air.Introspector.Console.log("DB ouverte");
} catch(error) {
    air.Introspector.Console.log("Erreur :", error.message);
    air.Introspector.Console.log("Détails de l'erreur :", error.details);  
}


Dans cet exemple, les erreurs éventuelles sont retransmises par la clause "catch" et s'affichent dans la console. Cette méthode n'est valable que pour la méthode synchrone.
Pour une connexion asynchrone, il faut passer par un écouteur des événements de connexion SQL : SQLEvent.OPEN et SQLErrorEvent.ERROR.


// Constantes
var DB_FOLDER = "db";
var DB_NAME = "maBase.db";

// creation du repertoire
var dbFolder = air.File.applicationStorageDirectory.resolvePath(DB_FOLDER);
dbFolder.createDirectory();

// creation de la base
var mainDB = dbFolder.resolvePath(DB_NAME);


// connexion a la base
var dbConnect = new air.SQLConnection();

dbConnect.openAsync(mainDB);
dbConnect.addEventListener(air.SQLEvent.OPEN, mafonctionOuverture);
dbConnect.addEventListener(air.SQLErrorEvent.ERROR, mafonctionErreur);


Vous savez maintenant créer une base de données avec AIR et ouvrir une connexion.
Prochaine étape : création et gestion des tables dans la base.

Bon vent !

2 personnes ont commenté cet article. Et vous ?

Je ne savais pas que AIR permettais de travailler avec du SQLite. C'est vraiment une bonne nouvelle que j'apprends par votre blog que j'ai trouvé par hasard!

Oui, AIR permet beaucoup de choses avec SQLite. Et c'est un vrai plaisir que de travailler avec une base de données sans avoir besoin de php. De plus, les performances sont plutôt bonnes.