SED-P.NET

Accueil du site > Développement (Pascal / Delphi) > SQLite > SQLite & TLiteDB : Utilisation

SQLite & TLiteDB : Utilisation

samedi 11 octobre 2003, par Bech ()


TLiteDB

TLiteDB est un objet qui vous permet d’utiliser SQLite dans votre application. Il n’utilise pas les objet et composants DB de delphi, ce qui offre deux avantages :

- Utilisable même avec les versions perso de delphi,
- pas besoin de rajouter DB si vous voulez seulement utiliser quelques fonctions de base de données.

Utiliser TLiteDB

Avant tout, vous devez inclure le fichier SQLite.pas dans les uses de votre programme.

Attention : Une directive de compilation présente dans le fichier SQLIte.pas permet d’activer certaines fonctions de TLiteDB concernant les composants.

Cette directive se nomme WITH_GUI et, lorsqu’elle est active, TLiteDB sera compilé en tant que TComponent (sinon ce sera en tant que TObject).

En plus de modifier le type, la directive WITH_GUI permet également d’activer la possibilité de charger directement le résultat d’une requête vers des composants comme une StringGrid.

Creation d’un objet TLiteDB

La création est très simple :


...

var
  db : TLiteDB;

...

db := TLiteDB.Create(self, DatabaseName);

Vous pouvez également utiliser :


db := TLiteDB.Create(self);
db.Use(DatabaseName);

Si la base de données n’existe pas, SQLite s’occupe de sa création. Dans ce cas, SQLite rajoutera l’extension ".lit" au nom de votre base.

Notez que si la directive de compilation WITH_GUI n’est pas active, le paramètre self ne doit pas être indiqué.

Destruction de l’objet

Un simple db.free fera l’affaire !

Exécuter une requête

plusieurs possiblités suivant le type de requête :

- DoQuery(sql) pour éxécuter une requête,
- queryone(sql) pour récupérer uniquement le premier enregistrement résultant de la requête (un select),
- Query(sql) pour récuperer le résultat d’un select.

Si WITH_GUI est actif, il est également possible de faire :

- QueryStringGrid(sql, TStringGrid) pour charger le résultat dans une StringGrid,
- QueryComboBox(sql, TComboBox, AddEmpty) pour charger une requête dans un ComboBox.

Utiliser le résultat d’une requête

Après l’éxécution d’un Query, le résultat de la requête se trouve dans le tableau db.results[y][x].

- Y représente le numéro de l’enregistrement,
- X représente le nom du champ.

Vous pouvez également utiliser l’objet Results de différentes manières :

- db.results[y][x] retourne toujours une chaine (string),
- db.results[y].format[x].asdesiredformat retourne le champ dans le format indiqué,
- db.results[y].byfield[’fieldname’] vous permet d’indiquer le nom du champ,
- db.results[y].asnamevalue retourne l’enregistrement sous forme d’une suite de "nomchamp=valeurchamp".

les types de champ disponible pour "format[x].asdesiredformat" sont :

- AsString (le format par défaut),
- AsInteger,
- AsBool,
- AsFloat.

l’auteur prévoit prochainement la présence de AsDateTime.

Il est possible de savoir si un champ est vide par le test db.results[y].IsNull[x] qui retourne un boolean.

Enfin, le plus important, db.RowCount vous donne le nombre total d’enregistrements. De même que db.results[y].fields.count vous donne le nombre de champs.

Gestion des transactions

SQLite permet d’utiliser des transactions comme tout serveur SQL.

Les commandes sont :

- db.StartTransaction pour commencer une transation. Vous pouvez alors effectuer vos modification sur la base,
- db.commit pour valider votre transaction/vos modifications,
- db.rollback pour annuler votre transaction/vos modification.

Les transactions sont utilisable même en multi-Thread.

P.-S.

Basé sur la documentation de TLiteDB, disponible sur le site de l’auteur : http://wiki.sqlite.dubaron.com/index.php ?page=Documentation

Répondre à cet article

Creative Commons License
Cette création est mise à disposition sous un contrat Creative Commons .

Articles de cette rubrique


Dernières brèves


A visiter