Pbm de retour de requete

goueg83460 Messages postés 57 Date d'inscription mercredi 23 novembre 2005 Statut Membre Dernière intervention 7 août 2009 - 28 févr. 2006 à 12:10
goueg83460 Messages postés 57 Date d'inscription mercredi 23 novembre 2005 Statut Membre Dernière intervention 7 août 2009 - 28 févr. 2006 à 14:11
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

cs_AlexN Messages postés 694 Date d'inscription lundi 5 décembre 2005 Statut Membre Dernière intervention 8 janvier 2014 19
28 févr. 2006 à 13:42
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
0
goueg83460 Messages postés 57 Date d'inscription mercredi 23 novembre 2005 Statut Membre Dernière intervention 7 août 2009
28 févr. 2006 à 13:57
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.
0
goueg83460 Messages postés 57 Date d'inscription mercredi 23 novembre 2005 Statut Membre Dernière intervention 7 août 2009
28 févr. 2006 à 14:11
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.
0
Rejoignez-nous