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

Bibliothèques Discussion :

SQLite et C++


Sujet :

Bibliothèques

  1. #1
    Membre actif
    Avatar de katanaenmousse
    Profil pro
    Inscrit en
    octobre 2008
    Messages
    215
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : octobre 2008
    Messages : 215
    Points : 226
    Points
    226
    Par défaut SQLite et C++
    Bonjour à tous,
    je suis sur un projet dans lequel j'ai besoin de Sqlite. tout mon programme est écrit en C++ et Gtkmm.
    Mon problème est que je n'arrive pas à utiliser sqlite avec c++.
    J'ai bien cherché des tutoriels mais je n'ai rien trouvé qui me permette d'utiliser sqlite avec mon code c++
    Quelqu'un a t il déjà rencontré ce problème et si oui est ce que vous avez un petit exemple de code c++ ?
    merci d'avance
    bien cordialement
    KatanaEnMousse
    Une fois qu'une réponse qui vous convient a été trouvée à votre sujet, pensez à le mettre en résolu.

  2. #2
    Expert éminent
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    juillet 2013
    Messages
    4 113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : juillet 2013
    Messages : 4 113
    Points : 9 220
    Points
    9 220
    Par défaut
    Regarde éventuellement mon message sur ce forum

  3. #3
    Membre actif
    Avatar de katanaenmousse
    Profil pro
    Inscrit en
    octobre 2008
    Messages
    215
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : octobre 2008
    Messages : 215
    Points : 226
    Points
    226
    Par défaut
    Merci mais j'avoue que ça m'aide pas plus... désolé...
    je crois que je vais reussir à le faire en C
    faudra que je le fasse en C++ après
    je vous tiens au courant si j avance
    merci
    KatanaEnMousse
    Une fois qu'une réponse qui vous convient a été trouvée à votre sujet, pensez à le mettre en résolu.

  4. #4
    Membre actif
    Avatar de katanaenmousse
    Profil pro
    Inscrit en
    octobre 2008
    Messages
    215
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : octobre 2008
    Messages : 215
    Points : 226
    Points
    226
    Par défaut
    alors j ai un peu avancé j'ai trouvé un exemple qui fonctionne.
    Mais ca me force à ajouter sqlite3.h à mes sources et le problème c'est qu'il est en C pas en C++
    est ce que je peux faire un wrapper facilement (je n'en ai jamais fait et je ne sais pas du tout comment commencer... :p)

    voici le code que j'utilise et qui fonctionne :
    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
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    #include <stdio.h>
    #include <stdlib.h>
    #include <sqlite3.h> 
     
    static int callback(void *NotUsed, int argc, char **argv, char **azColName){
       int i;
       for(i=0; i<argc; i++){
          printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL");
       }
       printf("\n");
       return 0;
    }
     
    int main(int argc, char* argv[])
    {
       sqlite3 *db;
       char *zErrMsg = 0;
       int  rc;
       char *sql;
     
       /* Open database */
       rc = sqlite3_open("test.db", &db);
       if( rc ){
          fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
          return(0);
       }else{
          fprintf(stdout, "Opened database successfully\n");
       }
     
       /* Create SQL statement */
       sql = "CREATE TABLE COMPANY("  \
             "ID INT PRIMARY KEY     NOT NULL," \
             "NAME           TEXT    NOT NULL," \
             "AGE            INT     NOT NULL," \
             "ADDRESS        CHAR(50)," \
             "SALARY         REAL );";
     
       /* Execute SQL statement */
       rc = sqlite3_exec(db, sql, callback, 0, &zErrMsg);
       if( rc != SQLITE_OK ){
       fprintf(stderr, "SQL error: %s\n", zErrMsg);
          sqlite3_free(zErrMsg);
       }else{
          fprintf(stdout, "Table created successfully\n");
       }
        /* Create SQL statement */
       sql = "INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) "  \
             "VALUES (1, 'Paul', 32, 'California', 20000.00 ); " \
             "INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) "  \
             "VALUES (2, 'Allen', 25, 'Texas', 15000.00 ); "     \
             "INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)" \
             "VALUES (3, 'Teddy', 23, 'Norway', 20000.00 );" \
             "INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)" \
             "VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00 );";
     
       /* Execute SQL statement */
       rc = sqlite3_exec(db, sql, callback, 0, &zErrMsg);
       if( rc != SQLITE_OK ){
          fprintf(stderr, "SQL error: %s\n", zErrMsg);
          sqlite3_free(zErrMsg);
       }else{
          fprintf(stdout, "Records created successfully\n");
       }
     
       /* Create SQL statement */
       sql = "SELECT * from COMPANY";
     
       /* Execute SQL statement */
       rc = sqlite3_exec(db, sql, callback, (void*)data, &zErrMsg);
       if( rc != SQLITE_OK ){
          fprintf(stderr, "SQL error: %s\n", zErrMsg);
          sqlite3_free(zErrMsg);
       }else{
          fprintf(stdout, "Operation done successfully\n");
       }
       sqlite3_close(db);
       return 0;
    }
    je comprends comment fonctionne ce code mais bon je ne suis pas en C++ la.....

    A votre avis je dois m'attendre à des soucis particulier en continuant le devellopement sur cette base C et C++ mélangé?
    Je préfère uniquement le C++ mais bon si ca ne pose pas de problème je m'y accomoderai.
    Mais ce n'est pas une solution très propre, si??
    KatanaEnMousse
    Une fois qu'une réponse qui vous convient a été trouvée à votre sujet, pensez à le mettre en résolu.

Discussions similaires

  1. qui connait sqlite ?
    Par Emmanuel Lecoester dans le forum SQLite
    Réponses: 23
    Dernier message: 19/02/2010, 14h44
  2. SQLITE
    Par Betatesteur dans le forum SQLite
    Réponses: 2
    Dernier message: 24/06/2005, 13h41
  3. [SQLite]éliminer un motif dans des champ TEXT
    Par Invité(e) dans le forum Langage SQL
    Réponses: 2
    Dernier message: 26/05/2005, 18h44
  4. base de données en sqlite
    Par Cyrillou dans le forum SQLite
    Réponses: 1
    Dernier message: 12/05/2005, 16h37
  5. debuter en SQLite
    Par venomelektro dans le forum SQLite
    Réponses: 4
    Dernier message: 08/12/2004, 20h17

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