IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++Builder Discussion :

Tutoriel: Utilisation des librairies SQLite dans un projet C++Builder


Sujet :

C++Builder

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    D�tails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Par d�faut Tutoriel: Utilisation des librairies SQLite dans un projet C++Builder
    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.

  2. #2
    Membre �clair�
    Profil pro
    Inscrit en
    Ao�t 2010
    Messages
    265
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2010
    Messages : 265
    Par d�faut
    Citation Envoy� par Crayon Voir le message

    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/

    J'ai t�l�charg� le fichier SQLiteManager_0.4.8.xpi sur le site, mais comment tu fais pour l'installer dans firefox?
    Merci

  3. #3
    Membre �m�rite
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    573
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 573
    Par d�faut
    Tu n as qu � le deposer sur une fen�tre de firefox et poursuivre

  4. #4
    Membre Expert
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    D�tails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Par d�faut
    Ou sinon tu peux l'installer � partir du site de modules compl�mentaires de Mozilla � l'adresse suivante: https://addons.mozilla.org/en-US/firefox/addon/5817

  5. #5
    Membre confirm�
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    162
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 162
    Par d�faut
    Voil� je pensai :
    au lieu d'utiliser un TMemo on pourrait utiliser un ListView ?

    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
    static int callback(void *NotUsed, int argc, char **argv, char **azColName)
    {
        AnsiString TempText = "";
        AnsiString MyText = "";
        AnsiString URL = "";
        AnsiString User = "";
        AnsiString Id = "";
     
        for(int i=0; i<argc; i++)
        {
            TempText.sprintf("%s\t", argv[i] ? argv[i] : "NULL");
            URL.sprintf("%s", argv[0]);
            User.sprintf("%s", argv[1]);
            Id.sprintf("%s", argv[2]);
            MyText += TempText;
     
        }
       ListIt = Form1->LV1->Items->Add();
      ListIt->Caption = URL;        // Affichage 1er colonne URLs
      ListIt->SubItems->Add(User); // Affichage colonne suivante User
      ListIt->SubItems->Add(Id);
     
        return 0;

  6. #6
    Membre exp�riment�
    Homme Profil pro
    Enseignant
    Inscrit en
    Mars 2012
    Messages
    164
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activit� : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2012
    Messages : 164
    Par d�faut
    Sqlite, je connaissais pas �a avant d'aborder la programmation Android. Je suis s�duit par le concept "pas de serveur, tout est dans le fichier".

    J'ai bien vu qu'il y avait un forum Sqlite ici, mais je me demande s'il y a eu des d�veloppement de ce c�t� ici, par exemple un composant "TQuery" adapt� � Sqlite?

Discussions similaires

  1. Utiliser des DLL externes dans un projet Qt
    Par Kermichou dans le forum Qt
    R�ponses: 2
    Dernier message: 18/07/2013, 15h28
  2. Utilisation des fonctionnalit�s AJAX dans un projet web
    Par stefsas dans le forum ASP.NET Ajax
    R�ponses: 5
    Dernier message: 08/04/2010, 08h19
  3. utilisation de fichiers .c dans un projet C++ Builder
    Par engrobel dans le forum C++Builder
    R�ponses: 1
    Dernier message: 22/08/2009, 09h37
  4. R�ponses: 3
    Dernier message: 18/09/2007, 14h54
  5. Comment utiliser des dll C++ dans un projet C# ?
    Par kreitech dans le forum C#
    R�ponses: 5
    Dernier message: 20/02/2007, 16h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo