ydu
Messages postés61Date d'inscriptionmercredi 1 mars 2006StatutMembreDernière intervention 6 août 2009
-
10 avril 2009 à 15:24
ydu
Messages postés61Date d'inscriptionmercredi 1 mars 2006StatutMembreDernière intervention 6 août 2009
-
10 avril 2009 à 16:34
Bonjour,
j'utilise dev C++, vous trouverez ci-dessous une partie de mon code et la compil bloque sur la fonction Strcat
Pouvez vous me dire ce qui ne va pas svp ?
J'ai bien déclaré string.h
int main(int argc, char *argv[])
{
char groupe[5];
char test1[50];
char test[100];
printf ("Quel Groupe souhaitez vous analyser ?\n");
scanf("%s",&groupe);
test1="SELECT * FROM base WHERE CODNIV=";
test=strcat(test1,groupe);
Pistol_Pete
Messages postés1053Date d'inscriptionsamedi 2 octobre 2004StatutMembreDernière intervention 9 juillet 20137 10 avril 2009 à 15:32
Salut
Il y a plein d'erreur dans ce petit code:
scanf("%s",groupe); Il ne faut pas le & car groupe est déjà un pointeur
On ne copie pas un tableau comme tu essaye de le faire, on fait:
strcpy(test1,"SELECT * FROM base WHERE CODNIV=");
et enfin strcat(test1,groupe); suffit sinon tu essayes d'égaler 2 pointeurs
A+
____________________________________________________________________________
Mon site internet :
http://ImAnalyse.free.fr
ydu
Messages postés61Date d'inscriptionmercredi 1 mars 2006StatutMembreDernière intervention 6 août 2009 10 avril 2009 à 16:34
Merci beaucoup pour ta réponse, j'ai corrigé certain points que tu as mentionné.
Voila le fameux de l'histoire, le code ci dessous fait une requete SQL sur une base Access
la ligne de ma requete à savoir:
char szSql[256] = "SELECT * FROM base WHERE CODNIV='00684'";
je voudrai rendre dans cette requête CODNIV variable grace a ce que saisie l'utilisateur (variable groupe)
J'ai vue que cela était ^possible grace à la fonction strcat
Merci de votre aide
*********************
/* Connexion et execution de requete sur un base de donnees Microsoft Access */
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <sql.h>
#include <sqlext.h>
#include <string.h>
#pragma comment(lib, "odbc32.lib")
int main(int argc, char *argv[])
{
char groupe[5];
char test[50];
printf ("Quel Groupe souhaitez vous analyser ?\n");
scanf("%s",groupe);
strcat(strcpy(test,"SELECT * FROM base WHERE CODNIV="),groupe);
/* char szSql[256] = "SELECT * FROM base"; */
char szSql[256] = "SELECT * FROM base WHERE CODNIV='00684'";
/* char szSql[256] = "SELECT * FROM base WHERE CODNIV='00684' and CODPRD='01.006'"; */
int ret1;
int ret2;
int ret3;
int ret4;
int ret5;
char CODNIV[128];
char TYPNIV[128];
char CODPRD[128];
int PRODC;
int OBJANNEE;
/* IMPORTANT : Pour les requetes du style DROP/CREATE/UPDATE... */
/*Vous pouvez utiliser : rc = SQLExecDirectA(hStmt,(unsigned char*)szSql,SQL_NTS); */
/* 4 - Boucle pour afficher les resultats */
while(!(SQLFetch(hStmt) & 0xFFFE))
{
printf("{%s}{%s}{%s}{%i}{%i}\n",CODNIV, TYPNIV, CODPRD, PRODC, OBJANNEE);
}
/* 5 - Liberations et fermeture de la connection a la BDD */
rc = SQLFreeStmt(hStmt, SQL_DROP);
rc = SQLDisconnect(hDbc);
rc = SQLFreeEnv(hEnv);