Précédent   Forum du club des développeurs et IT Pro > Général Développement > Programmation système > Linux
Linux Forum d'entraide sur la programmation Linux : shell, système, ...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 31/10/2012, 11h03   #1
ferhat.adel
 
Inscription : août 2008
Messages : 363
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 363
Points : -18
Points : -18
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
ferhat.adel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/11/2012, 17h58   #2
gerald3d
Expert Confirmé
 
Avatar de gerald3d
 
Homme Gérald
Conducteur de train
Inscription : février 2008
Messages : 1 368
Détails du profil
Informations personnelles :
Nom : Homme Gérald
Âge : 43
Localisation : France, Côte d'Or (Bourgogne)

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

Informations forums :
Inscription : février 2008
Messages : 1 368
Points : 2 536
Points : 2 536
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 / Slackware 13.37 32 bits

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
gerald3d est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 02h47.


 
 
 
 
Partenaires

Hébergement Web