Le but du tutoriel est d'apprendre à utiliser les librairies SQLite dans un projet C++Builder. La première chose, pour ceux qui ne savent pas de quoi je parle, SQLite est une bibliothèque qui permet l'utilisation de requêtes SQL pour se connecter à un fichier de bases de données. Pour plus d'information vous pouvez consulter le lien suivant:
[ame]http://fr.wikipedia.org/wiki/SQLite[/ame]

Avant de débuter il faut télécharger le code source du site Web officiel:
http://www.sqlite.org/download.html

Pour me connecter à une base de données pour y faire des modifications j'utilise l'extension Firefox SQLite Manager. Il est possible de la télécharger gratuitement à l'adresse suivante: http://code.google.com/p/sqlite-manager/

Premièrement, il faut créer un projet et mettre les fichiers téléchargés (sqlite3.c, sqlite3.h et sqlite3ext.h) à l'intérieur du dossier.

Pour utiliser SQLite, il faut l'inclure:
Voici maintenant, le moment de vous montrer le code. Il s'agit d'une modification du code "SQLite In 5 Minutes Or Less" tirée du site Web: http://www.sqlite.org/quickstart.html

Deuxièmement il faut mettre un TMemo sur la Form. C'est le seul composant qui va être utilisé pour tout simplifier.

Voici le code du fichier .cpp:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
#include "sqlite3.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
 
static int callback(void *, int, char **, char **);
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
    sqlite3 *db = NULL;
    int rc;
    char *zErrMsg = 0;
    AnsiString path = "Northwind.db";           // Chemin vers la bd
    AnsiString sql = "SELECT * FROM Region";    // Requête SQL
 
    Memo1->Clear();
    Memo1->ScrollBars = ssBoth;
 
    rc = sqlite3_open(path.c_str(), &db);
    if(rc != SQLITE_OK)
    {
        MessageBox(NULL, sqlite3_errmsg(db), "SQL error", MB_ICONERROR);
        sqlite3_close(db);
    }
 
    rc = sqlite3_exec(db, sql.c_str(), callback, 0, &zErrMsg);
    if(rc != SQLITE_OK)
    {
        MessageBox(NULL, zErrMsg, "SQL error", MB_ICONERROR);
        sqlite3_free(zErrMsg);
    }
 
    sqlite3_close(db);
}
//---------------------------------------------------------------------------
 
static int callback(void *NotUsed, int argc, char **argv, char **azColName)
{
    AnsiString TempText = "";
    AnsiString MyText = "";
 
    for(int i=0; i<argc; i++)
    {
        TempText.sprintf("%s = %s\t", azColName[i], argv[i] ? argv[i] : "NULL");
        MyText += TempText;
    }
    Form1->Memo1->Lines->Add(MyText);
    return 0;
}
Il faut modifier les variables path et sql pour faire fonctionner les codes.

Pour connaître la syntaxe des requêtes SQL vous pouvez aller voir: http://www.sqlite.org/lang.html

Ce n'est pas plus compliqué que cela, si vous avez des questions, n'hésitez pas à les poser.