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

SQLite Discussion :

Debuter avec SQLite


Sujet :

SQLite

  1. #1
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    40
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 40
    Points : 40
    Points
    40
    Par défaut Debuter avec SQLite
    Bonjours!
    je suis débutant avec SQlite!
    je dois realiser une application avec c++ en utilisant SQlite3,
    ce code:
    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
    #include <stdio.h>
    #include <sqlite.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){
      sqlite *db;
      char *zErrMsg = 0;
      int rc;
     
      if( argc!=3 ){
        fprintf(stderr, "Usage: %s DATABASE SQL-STATEMENT\n", argv[0]);
        exit(1);
      }
      db = sqlite_open(argv[1], 0, &zErrMsg);
      if( db==0 ){
        fprintf(stderr, "Can't open database: %s\n", zErrMsg);
        exit(1);
      }
      rc = sqlite_exec(db, argv[2], callback, 0, &zErrMsg);
      if( rc!=SQLITE_OK ){
        fprintf(stderr, "SQL error: %s\n", zErrMsg);
      }
      sqlite_close(db);
      return 0;
    }
    m'affiche cette erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    ../Programmation/C++/Sqlite3Test/main.cpp:35: undefined reference to `sqlite3_open'
    ../Programmation/C++/Sqlite3Test/main.cpp:37: undefined reference to `sqlite3_errmsg'
    ../Programmation/C++/Sqlite3Test/main.cpp:38: undefined reference to `sqlite3_close'
    ../Programmation/C++/Sqlite3Test/main.cpp:41: undefined reference to `sqlite3_exec'
    ../Programmation/C++/Sqlite3Test/main.cpp:44: undefined reference to `sqlite3_free'
    ../Programmation/C++/Sqlite3Test/main.cpp:46: undefined reference to `sqlite3_close'

  2. #2
    Membre à l'essai
    Inscrit en
    Juin 2009
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 9
    Points : 11
    Points
    11
    Par défaut
    Salut,

    Ne faudrait il pas plutot inclure #include <sqlite3.h> et appeler sqlite3_open ?


    ________________________
    small footprint database? visit http://www.raima.com/

  3. #3
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    40
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 40
    Points : 40
    Points
    40
    Par défaut
    Citation Envoyé par Lio_c Voir le message
    Salut,

    Ne faudrait il pas plutot inclure #include <sqlite3.h> et appeler sqlite3_open ?
    toujours le même problème!!!

  4. #4
    Membre à l'essai
    Inscrit en
    Juin 2009
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 9
    Points : 11
    Points
    11
    Par défaut
    Je pense que tu as redefefini certaines fonctions car le code que tu as donne est different de l'exemple donne dans le site. En tout cas avec le code suivant et en ajoutant au project sqlite3.c et sqlite.h ( au pire tu peux compiler separement ces fichiers and linker avec l'Obj ) :

    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
    #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;
     
      if( argc!=3 ){
        fprintf(stderr, "Usage: %s DATABASE SQL-STATEMENT\n", argv[0]);
        exit(1);
      }
      rc = sqlite3_open(argv[1], 0 );
      if( rc ){
        fprintf(stderr, "Can't open database: %s\n", zErrMsg);
        exit(1);
      }
      rc = sqlite3_exec(db, argv[2], callback, 0, &zErrMsg);
      if( rc!=SQLITE_OK ){
        fprintf(stderr, "SQL error: %s\n", zErrMsg);
      }
      sqlite3_close(db);
      return 0;
    }
    Ca marche pour moi


    ________________________
    Looking for fast Embedded databases check http://www.raima.com/

  5. #5
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    40
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 40
    Points : 40
    Points
    40
    Par défaut
    Citation Envoyé par Lio_c Voir le message
    au pire tu peux compiler separement ces fichiers and linker avec l'Obj ) :
    pouvez vous expliquer ca SVP!!!

  6. #6
    Membre à l'essai
    Inscrit en
    Juin 2009
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 9
    Points : 11
    Points
    11
    Par défaut
    Salut,

    Desole, j'etais en conges pas tres difficile, tu compiles le fichier sqllite3.c, en sortie tu vas avoir un fichier .obj; enfin sous windows, sur Linux c'est un .o, je crois.
    Il te suffit juste de linker avec ce fichier...

    ________________________
    Looking for a Fast Embedded Database ? visit http://www.raima.com/

Discussions similaires

  1. Probleme simple de debutant avec INSERT TO et UPDATE
    Par Tom_Cruise dans le forum Langage SQL
    Réponses: 5
    Dernier message: 26/08/2005, 08h15
  2. debuter avec opengl
    Par osykomantis dans le forum OpenGL
    Réponses: 2
    Dernier message: 15/03/2005, 11h45
  3. debuter en SQLite
    Par venomelektro dans le forum SQLite
    Réponses: 4
    Dernier message: 08/12/2004, 19h17
  4. Problème pour debuter avec glut
    Par ismael14 dans le forum GLUT
    Réponses: 2
    Dernier message: 26/07/2004, 10h37
  5. Gentoo prob de startx (Débutant) avec une ATI
    Par ~Dr@cuL~ dans le forum Applications et environnements graphiques
    Réponses: 10
    Dernier message: 08/04/2004, 18h42

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