IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++Builder Discussion :

Requ�te avec param�tres - MySQL - C++


Sujet :

C++Builder

  1. #1
    Membre �clair� Avatar de LeonCosnyd
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    439
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 439
    Par d�faut Requ�te avec param�tres - MySQL - C++
    Bonjour,

    Je suis vraiment d�sesp�r�, je suis connect� � ma base mysql � partir d'un programme en C++ ( gr�ce � l'api de mysql) sur borland C++ builder 6.

    Seulement lorsue je veux interroger la base de donn�e � partir d'une requ�te avec un ou plusieurs param�tres. J'arrive � faire des requ�tes simple gr�ce a mysql_query. Mais je n'arrive pas a passer de param�tres � ma commande.

    Exemple:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
     mysql_query(mySQL, "select * from Joueur where Pseudo = 'BOB'") ;
    <-- cette requete me retourne les infos du joueur BOB

    Probl�me:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     string NomDuJoueur; 
    NomDuJoueur="BOB"; 
    mysql_query(mySQL, "select * from Joueur where Pseudo = " NomDuJoueur);
    Voila j'espere avoir des r�ponses
    Merci � tous ceux qui se pencheront sur mon probl�me

  2. #2
    Membre �prouv�
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifi�)
    Inscrit en
    D�cembre 2004
    Messages
    2 059
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 54
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activit� : OPNI (Objet Programmant Non Identifi�)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : D�cembre 2004
    Messages : 2 059
    Par d�faut
    Bonsoir,

    Qqchose comme:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    string NomDuJoueur;
    NomDuJoueur="BOB";
    String S = AnsiString("select * from Joueur where Pseudo = ") + NomDuJoueur; 
    mysql_query(mySQL, S);
    ?

    Mais je ne connais pas le type des arguments attendus par mysql_query ...
    En esp�rant t'aider,
    @+

  3. #3
    Membre �clair� Avatar de LeonCosnyd
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    439
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 439
    Par d�faut
    Je te remercie beaucoup de ta r�ponse.
    Cependant la ligne o� j'utilise mysql_query donne des erreurs:
    Impossible de convertir un AnsiString en const char*

  4. #4
    Membre �prouv�
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifi�)
    Inscrit en
    D�cembre 2004
    Messages
    2 059
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 54
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activit� : OPNI (Objet Programmant Non Identifi�)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : D�cembre 2004
    Messages : 2 059
    Par d�faut
    Essaies:
    a la place.
    (v�rifie la syntaxe exacte, s'il te plait)

  5. #5
    Membre �clair� Avatar de LeonCosnyd
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    439
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 439
    Par d�faut
    Le code compile enfin, mais n'affiche rien ^^

    Voici le code:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    ListBox2->Items->Clear();
    String NomDuJoueur;
    NomDuJoueur="Clyde";
    String S = "select * from Joueur where Pseudo = " + NomDuJoueur;
    if (!mysql_query(mySQL, S.c_str()))
    {
    myRES = mysql_store_result(mySQL);
    if (myRES)
    {
    for(unsigned int i = 0; i < myRES->row_count; i++)
    {
    myROW = mysql_fetch_row(myRES);
    for(unsigned int j = 0; j < mysql_num_fields(myRES); j++)
    {
    aStr = myROW[j];
    ListBox2->Items->Add(aStr);
    }
    }
    mysql_free_result(myRES);
    }
    }

  6. #6
    Membre �clair� Avatar de LeonCosnyd
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    439
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 439
    Par d�faut
    apr�s test je remarque que l'on ne rentre pas dans mon if...

  7. #7
    Membre Expert
    Avatar de bakaneko
    Profil pro
    Inscrit en
    F�vrier 2004
    Messages
    1 268
    D�tails du profil
    Informations personnelles :
    �ge : 45
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2004
    Messages : 1 268
    Par d�faut
    Essayes avec ceci comme requ�te :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    String S = "select * from Joueur where Pseudo = " + QuotedStr(NomDuJoueur);
    G�n�ralement, dans les requ�tes SQL, les champs Texte/Caract�re demandent des quottes en d�but et fin pour �tre correctement utilis�s

  8. #8
    Membre �m�rite
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    573
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 573
    Par d�faut j ai test� ce code , �� fonctionne
    Salut

    tout d abord , ajoutes un panel1 , il permet de verifier l etat de la connection avant d envoyer la requete

    ensuite as tu ajout� libmySQL.dll et libmySQL.lib au projet ?

    enfin as tu modifi� mysql.h et l as tu mis en include ?



    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    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
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    AnsiString Mon_ip = 127.0.0.1 ;
    AnsiString Mon_user = moi ;
    AnsiString Mon_pass = 123456 ;
    AnsiString Ma_base = mabdd ;
     
     
    MYSQL *mySQL; mySQL = mysql_init(NULL);
    if (!mysql_real_connect(mySQL, Mon_ip.c_str() , Mon_user.c_str(), Mon_pass.c_str() ,Ma_base.c_str(), 3306, NULL, 0))
    { Panel1->Color=clRed;     Panel1->Caption="Echec";     }    // la connection a échoué
     else  { Panel1->Caption="Ok";                             // la connection a réussi
     
     
     ListBox2->Items->Clear();
    AnsiString NomDuJoueur;
    MYSQL_RES *myRES; MYSQL_ROW myROW;
    NomDuJoueur="Clyde";
    AnsiString aStr ;
    AnsiString S = "select * from Joueur where Pseudo = \"" + NomDuJoueur + "\"";
     
    if (  !mysql_query(  mySQL, S.c_str()  )  )
    {    myRES = mysql_store_result(mySQL);
            if (myRES)
                {
    			for(unsigned int i = 0; i < myRES->row_count; i++)
    				{
    				myROW = mysql_fetch_row(myRES);
    				for(unsigned int j = 0; j < mysql_num_fields(myRES); j++)
    					{ aStr = myROW[j];  ListBox2->Items->Add(aStr); }
    				}
    			}
    }
    mysql_free_result(myRES);
    }
    }

    telecharges le projet ici pour builder 6
    http://dl.free.fr/b9qezNJA3/bcbreponsesql.zip

  9. #9
    Membre �clair� Avatar de LeonCosnyd
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    439
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 439
    Par d�faut Solution mais autre probl�me lol
    Merci pour vos r�ponses.

    J'ai bien inclus tout les .lib et mis les .dll au bonne endroit.

    J'arrive � me connecter � ma base.
    J'arrive aussi � faire des requetes avec des parametres mais cela ne fonctionne pas lorsque j'ai plus de 2 param�tres

    Le code:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
             std::string pseudo="Goliate";
            std::string pass="123456";
            std::string mail="[email protected]";
            std::string com="test";
     
           sprintf(requete,"INSERT INTO Joueur (PSEUDO, PASSWORD, EMAIL, COMMENTAIRE, nbpartieJouee, NbPartieGagnee, NbPoint) VALUES ('%s','%s','%s','%s','0','0','0')", pseudo, password, mail, comm);
     
        std::cout << requete << std::endl;
     
        mysql_query(mySQL, requete);

    Mon premier param�tre fonctionne correctement mais les autres se transforme en caract�res sp�ciaux pas du tout attendus

    Si quelqu'un a une solution

  10. #10
    Membre �m�rite
    Homme Profil pro
    Consultant ERP
    Inscrit en
    F�vrier 2004
    Messages
    644
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activit� : Consultant ERP

    Informations forums :
    Inscription : F�vrier 2004
    Messages : 644
    Par d�faut
    pourquoi ne prends-tu pas directement la query g�n�r�e et la balancer dans un outil tel que MySQLcc ou tout autre outil te permettant de travailler sur MySQL ?

    De cette mani�re tu pourrais plus facilement debugger.

    As-tu aussi regard� les valeurs de retour des fonctions mysql ? non je suppose.

    grrrrrr pas bien.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Requ�te avec param�tres variables
    Par dahu17 dans le forum Langage SQL
    R�ponses: 4
    Dernier message: 30/05/2007, 10h38
  2. R�ponses: 7
    Dernier message: 02/04/2007, 11h29
  3. R�ponses: 5
    Dernier message: 06/01/2007, 04h48
  4. [Oracle] - Requ�te avec param�tres
    Par b00tny dans le forum Langage SQL
    R�ponses: 4
    Dernier message: 24/04/2006, 16h09
  5. test d'une requ�te avec param�tre
    Par herv�14670 dans le forum Access
    R�ponses: 1
    Dernier message: 12/01/2006, 22h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo