Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 2 sur 2
  1. #1

    Inscrit en
    août 2008
    Messages
    391
    Détails du profil
    Informations forums :
    Inscription : août 2008
    Messages : 391
    Points : -26
    Points
    -26

    Par défaut problème avec sqllite sous linux

    bonjour à tous le monde voici mon code
    Code :
    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
     
    #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() 
    { 
     sqlite3 *db; 
    int rc; 
    char * errMsg; 
    rc=sqlite3_open("test1.db",&db); 
        printf("Hello world! adel\n"); 
     
        if (rc) 
        { printf("connexion null \n"); 
     
     
            } 
            else 
            { 
     
     
            printf("connexion réussi \n"); 
             sqlite3_close(db); 
            } 
     
     
    sqlite3_exec(db,"CREATE TABLE table1 (id INTEGER, nom varchar(30), prenom varchar(30))" ,NULL, NULL, &errMsg);
    //printf(%c,
     
    //CREATE TABLE table1 (id INTEGER, nom varchar(30), prenom varchar(30);
    //sqlite> INSERT INTO table1 values(42, "trax", "traxou"); 
     
     
         //fprintf(stderr, "SQL error: %s\n",errMsg ); 
         sqlite3_exec(db,"INSERT INTO table1 values(42, 'trax', traxou')",NULL, NULL, &errMsg);
    //printf(%d,&errMsg); 
         sqlite3_exec(db,"select * from table1",callback, 0, &errMsg); 
     
    }
    le problème est que il n'affiche rien
    le ficher .db est vide
    merci

  2. #2
    Membre Expert
    Avatar de gerald3d
    Homme Profil pro Gérald
    Conducteur de train
    Inscrit en
    février 2008
    Messages
    1 520
    Détails du profil
    Informations personnelles :
    Nom : Homme Gérald
    Âge : 44
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : février 2008
    Messages : 1 520
    Points : 2 413
    Points
    2 413

    Par défaut

    bonjour.

    Pour commencer si tu crées un fichier .db tu le fermes ensuite ligne 33. Il est difficile par la suite de créer des tables et de faire toute autre opération dessus.

    Ensuite ligne 45 tu as oublié un guillemet simple pour la donnée traxou.

    Une fois réglé ces deux petits problèmes tout fonctionne pour le mieux

    Remarque : pense à prendre en compte les erreurs émises par sqlite. Ca pourrait donner ce genre de choses :
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
          rc = sqlite3_exec(db,"CREATE TABLE table1 (id INTEGER, nom varchar(30), prenom varchar(30))" ,NULL, NULL, &errMsg);
          if (rc!=SQLITE_OK)
    	{
    	  fprintf (stderr, "SQL error: %s\n", errMsg);
    	  sqlite3_free (errMsg);
    	}
          else
    	{
     	  rc = sqlite3_exec(db,"INSERT INTO table1 values(42, 'trax', 'traxou')",NULL, NULL, &errMsg);
    	  if (rc!=SQLITE_OK)
    	    {
    	      fprintf (stderr, "SQL error: %s\n", errMsg);
    	      sqlite3_free (errMsg);
    	    }
    	  else
    	    {
    	      rc = sqlite3_exec(db,"SELECT * FROM table1",callback, 0, &errMsg); 
    	      if (rc!=SQLITE_OK)
    		{
    		  fprintf (stderr, "SQL error: %s\n", errMsg);
    		  sqlite3_free (errMsg);
    		}
    	    }
    	}
    Système d'exploitation : Debian Amd64 Testing

    Site perso : http://gerald3d.developpez.com (article Glade3 et Gtk+)

    Site perso : http://linechec.sourceforge.net (jeu d'echec) v0.4-1
    Site perso : http://m3dlib.tuxfamily.org/ (moteur 3d. Rendu dans un GtkDrawingArea avec utilisation de Cairo.) v0.26

    contact jabber : gerald3d@jabber.tuxfamily.org

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •