Précédent   Forum des professionnels en informatique > Bases de données > PostgreSQL
PostgreSQL Forum PostgreSQL. Avant de poster -> F.A.Q PostGreSQL Tutoriels PostGreSQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/05/2007, 16h38   #1
Futur Membre du Club
 
Inscription : janvier 2007
Messages : 52
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : janvier 2007
Messages : 52
Points : 18
Points : 18
Envoyer un message via MSN à Frederick_Etudiant
Par défaut Requête rebelle codée en C

Bonjour,

Je n'arrive pas à exécuter 2 requêtes, la première passe sans problème. La seconde me met un Segmentation Fault.
Quand je rentre la requête manuellement, pas de soucis, lorsque je l'ajoute par "calcul", ça ne marche plus.

C'est-à-dire que :

Code :
1
2
3
4
5
6
7
8
9
 
       strcpy(maRequete,"");
       strcat(maRequete,"SELECT SOURCE_ID, TARGET_ID FROM ROUTES WHERE ID = ");
       sprintf(resultChar,"%f\0",result);
       strcat(maRequete,resultChar);
       printf("%s\n",maRequete);
 
       res = PQexec(conn,maRequete);
       printf("OK\n");
Sur le terminal, j'ai comme résultat :
Code :
1
2
SELECT SOURCE_ID, TARGET_ID FROM ROUTES WHERE ID = 62500001887857.000000
Erreur de segmentation
Tandis que si je change le code par :
Code :
1
2
3
4
5
6
7
       strcpy(maRequete,"");
       strcat(maRequete,"SELECT SOURCE_ID, TARGET_ID FROM ROUTES WHERE ID = 62500001887857.000000");
       strcat(maRequete,resultChar);
       printf("%s\n",maRequete);
 
       res = PQexec(conn,maRequete);
       printf("OK\n");
cela m'affiche :
Code :
1
2
SELECT SOURCE_ID, TARGET_ID FROM ROUTES WHERE ID = 62500001887857.000000
OK



Les chaînes de caractères sont pourtant identiques

Merci de me donner un coup de pouce si vous comprenez l'erreur.
Frederick_Etudiant est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2007, 09h35   #2
Membre actif
 
Avatar de budtucker
 
Développeur multimédia
Inscription : avril 2007
Messages : 175
Détails du profil
Informations professionnelles :
Activité : Développeur multimédia

Informations forums :
Inscription : avril 2007
Messages : 175
Points : 174
Points : 174
As tu essayé de les mettre entre apostrophes ???
budtucker est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2007, 12h40   #3
Futur Membre du Club
 
Inscription : janvier 2007
Messages : 52
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : janvier 2007
Messages : 52
Points : 18
Points : 18
Envoyer un message via MSN à Frederick_Etudiant
De mettre quoi entre apostrophe?
Frederick_Etudiant est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2007, 13h28   #4
Futur Membre du Club
 
Inscription : janvier 2007
Messages : 52
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : janvier 2007
Messages : 52
Points : 18
Points : 18
Envoyer un message via MSN à Frederick_Etudiant
Je m'en suis sorti avec sprintf(resultChar,"%.0f",result);
Frederick_Etudiant est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h07.


 
 
 
 
Partenaires

Hébergement Web