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
Code : S�lectionner tout - Visualiser dans une fen�tre � part #include "sqlite3.h"
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:
Il faut modifier les variables path et sql pour faire fonctionner les codes.
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; }
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.
Partager