Pbm de retour de requete

Signaler
Messages postés
57
Date d'inscription
mercredi 23 novembre 2005
Statut
Membre
Dernière intervention
7 août 2009
-
Messages postés
57
Date d'inscription
mercredi 23 novembre 2005
Statut
Membre
Dernière intervention
7 août 2009
-
bonjour je fait un programme qui ecrit dans une base de donnée mysql. lorsque je fait le msql_query je voudrais savoir si la requete a bien ecri dans la base. Lorque je fait affiche le message pour dire que cela a bien ecrit il me dit toujours que la requete n'a pas pas marcher. Mais pourtant lorsque je vais regarder directement dans la base il y a les informations que je vient d'enregistrer. voici le code


MYSQL* mysql;
MYSQL_RES *myres;
mysql = mysql_init(NULL);//init connection
mysql_real_connect(mysql, "127.0.0.1", "root", NULL, "camping", 0, NULL, 0); //connection


// on écrit dans le table réservation
/*('JourArrivée','MoisArrivée','AnnéeArrivée','JourDépart','MoisDépart','AnnéeDépart','NombrePersonne','TypeVéhicule','NumEmplacement')*/
AnsiString sql="INSERT INTO tablereservation VALUES ('";
sql += "";
sql += "','";
sql += EdtJ1->Text;
sql += "','";
sql += EdtM1->Text;
sql += "','";
sql += EdtA1->Text;
sql += "','";
sql += EdtJ2->Text;
sql += "','";
sql += EdtM2->Text;
sql += "','";
sql += EdtA2->Text;
sql += "','";
sql += ComboBoxNbPersonne->Text;
sql += "','";
sql += ComboBoxTypeVeh->Text;
sql += "','";
sql += EdtEmplcament->Text;
sql += "','";
sql += "1234";
sql += "','";
sql += "0";
sql += "')";


// AnsiString id = mysql_insert_id(mysql); // on récupere le id de la table réservation/
mysql_query(mysql,sql.c_str());
myres = mysql_store_result(mysql);//je veut savoir si la requete a bien marcher pour l'indiquer à l'utilisateur.
if (myres)
{
LblVerif->Caption = "Enregistrement effectué";
}
else LblVerif->Caption = "Enregistrement non effectué";
}


Voila. JJe pense que j'ai du faire une erreur quelque part mais je ne vois pas comment la résoudre. Merci pour votre aide.

3 réponses

Messages postés
694
Date d'inscription
lundi 5 décembre 2005
Statut
Membre
Dernière intervention
8 janvier 2014
15
Tu as peut etre inverse les arguments de mysql_query :

if ( ($Reponse = mysql_query(sql.c_str(), mysql)) && mysql_num_rows($Reponse))
//ok
else
// vide
Messages postés
57
Date d'inscription
mercredi 23 novembre 2005
Statut
Membre
Dernière intervention
7 août 2009

non il ne faut pas l'inverser car cela met des erreurs sur le type, la fonction msql_query attend ses argument dans cet ordre la. Et ensuite lorque je compil il y a une erreur sur l'opérateur '&&' qui ne peut être implémenter dans le type AnsiString pour les arguments du type int. Voila donc cela doit venir d'autre part. Merci quand même.
Messages postés
57
Date d'inscription
mercredi 23 novembre 2005
Statut
Membre
Dernière intervention
7 août 2009

C'est bon j'ai trouvé. Tu m'a mit sur la bonne voix. En faite ce qu'il fallait faire c'etait de récupérer le résultat de mysql_query:

Reponse = mysql_query(mysql,sql.c_str());
if (Reponse == 0)
{
LblVerif->Caption = "Enregistrement effectué";
}
else LblVerif->Caption = "Enregistrement non effectué";
}

Voila merci beaucoup.