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 :

Problème requête MySql & builder


Sujet :

C++Builder

  1. #1
    Membre du Club
    Inscrit en
    Août 2006
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 79
    Points : 43
    Points
    43
    Par défaut Problème requête MySql & builder
    Voici se que je fais pour inserer mes donner dans mysql,


    --------------------------------- requete-------------------------------
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    MYSQL *mySQL;
    mySQL = mysql_init(NULL);
     
    mysql_query(mySQL,"INSERT INTO gestion_client VALUES('','"+Label1->Caption+"','"+Edit1->Text+"','"+Edit2->Text+"','"+Edit3->Text+"','"+Edit4->Text+"','"+Edit5->Text+"','"+Edit6->Text+"','"+Edit7->Text+"','"+Edit8->Text+"','"+Memo1->Text+"')");

    et lors de la compilation je recupére des erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    [C++ Erreur] Unit4.cpp(87): E2034 Impossible de convertir 'AnsiString' en 'const char *'
    [C++ Erreur] Unit4.cpp(87): E2342 Mauvaise correspondance de type dans le paramètre 'q' ('const char *' désiré, 'AnsiString' obtenu)
    pourtant j'ai suivi le tuto et vérifier les requete par rapport a celle deja poster, de l'aide please......

  2. #2
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Points : 3 766
    Points
    3 766
    Par défaut
    Salut boopix:
    Les chaines recuperees des TEdit sont des AnsiString.
    Pour convertir ta chaine il faut faire comme ceci:
    AnsiString "Ma_Chaine"; pour convertir Ma_Chaine.c_str()

  3. #3
    Membre du Club
    Inscrit en
    Août 2006
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 79
    Points : 43
    Points
    43
    Par défaut
    voici se que j'essaye de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    AnsiString requete;
    requete = "INSERT INTO gestion_client VALUES('','"+Label1->Caption+"','"+Edit1->Text+"','"+Edit2->Text+"','"+Edit3->Text+"','"+Edit4->Text+"','"+Edit5->Text+"','"+Edit6->Text+"','"+Edit7->Text+"','"+Edit8->Text+"','"+Memo1->Text+"')";
     
    mysql_real_connect(mySQL, "127.0.0.1", "root", "ga950106", "test", 0, NULL, 0);
    mysql_query(mySQL,requete.c_str());
    pas d'erreur a la compilation mais sa ne fonctionne pas ????


    autre info je me suit inspirer des tuto et de ce toopic

    http://www.developpez.net/forums/sho...ighlight=mysql

  4. #4
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Points : 3 766
    Points
    3 766
    Par défaut
    Je pense que cela est au niveau de la recuperation "Edit1->Text" que tu a le probleme.

  5. #5
    Membre du Club
    Inscrit en
    Août 2006
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 79
    Points : 43
    Points
    43
    Par défaut
    justement pour tester rien de mieux que le TLabel, donc se que je fais, ces l'affichage de la vaiable requete dans un label, et sa me donne bien la requete compléte, bizard non

  6. #6
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Points : 3 766
    Points
    3 766
    Par défaut
    je ne pense pas que tu peu pas recuperer directement tes chaines comme tu le fait
    tu doit faire comme ceci
    "mon_txt = Edit1->text;"
    et dans ta fonction
    "mon_txt.c_str()"

  7. #7
    Membre du Club
    Inscrit en
    Août 2006
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 79
    Points : 43
    Points
    43
    Par défaut
    j'ai pas compris se que tu veut que je fasse ?????

  8. #8
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Points : 3 766
    Points
    3 766
    Par défaut
    Dans ta chaine
    "INSERT INTO gestion_client VALUES('','"+Label1->Caption+"','"+Edit1->Text+"','"+Edit2->Text+"','"+Edit3->Text+"','"+Edit4->Text+"','"+Edit5->Text+"','"+Edit6->Text+"','"+Edit7->Text+"','"+Edit8->Text+"','"+Memo1->Text+"')"
    tu doit faire comme ceci
    "mon_txt = Edit1->text;"
    et dans ta fonction
    "mon_txt.c_str()"
    "INSERT INTO gestion_client VALUES('','"+Label1->Caption+"','"+mon_txt.c_str()"+"..................
    je pense que c'est aussi valable pour le label et le memo

  9. #9
    Membre du Club
    Inscrit en
    Août 2006
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 79
    Points : 43
    Points
    43
    Par défaut
    j'avais deja essayer et sa m'avais mis une erreur alors je reprends une requete de base deja construite pour tester

    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
     
     
    MYSQL *mySQL;
    mySQL = mysql_init(NULL);
     
     
    AnsiString requete;
    const char* query;
     
     
    requete = "INSERT INTO gestion_client VALUES('','toto','titi','rue alphonse toti','93200','Saint ouein','01.06.23.52.32','01.06.23.52.32','01.06.23.52.32','toto');";
     
    query = requete.c_str();
     
    Label16->Caption = query;
     
    mysql_query(mySQL,query);
    avec cette requete j'arrive a compiler mais lorsque je teste le programme il bloque et m'affiche une erreur comme quoi le projet a declencher une erreur de la classe .....


    ??? pourtant j'ai bien ecrit la requete ????

  10. #10
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Points : 3 766
    Points
    3 766
    Par défaut
    je pense qu'il il a une modif a faire
    ta chaine
    requete = "INSERT INTO gestion_client VALUES('','toto','titi','rue alphonse toti','93200','Saint ouein','01.06.23.52.32','01.06.23.52.32','01.06.23.52.32','toto');";
    a remplacer par celle ci sans le ; terminal
    requete = "INSERT INTO gestion_client VALUES('','toto','titi','rue alphonse toti','93200','Saint ouein','01.06.23.52.32','01.06.23.52.32','01.06.23.52.32','toto')";
    un post en cour avec sensiblement le meme probleme

  11. #11
    Membre du Club
    Inscrit en
    Août 2006
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 79
    Points : 43
    Points
    43
    Par défaut
    Si j'enleve le ; j'obtiens une erreur :

    violation d'accés a l'adresse 10003b1d dans le module 'libmysql.dll'. lecture de l'adresse 00000004.

  12. #12
    Membre averti Avatar de BOUBOU81
    Profil pro
    system integrator
    Inscrit en
    Juin 2004
    Messages
    358
    Détails du profil
    Informations personnelles :
    Localisation : Allemagne

    Informations professionnelles :
    Activité : system integrator

    Informations forums :
    Inscription : Juin 2004
    Messages : 358
    Points : 315
    Points
    315
    Par défaut
    Tu peux parfaitement faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    AnsiString requete=" Values ("+Edit1->Text+")";
    Tu n'as pas besoin de la convertir avec c_Str(), c'est le but des AnsiStrings.
    par contre, peux tu nous mettre un peu plus de ton code que l'on voit comment tu executes la requête?

    Et quel sont les objets que tu utilise pour te connecter à ta base MySQL

  13. #13
    Membre du Club
    Inscrit en
    Août 2006
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 79
    Points : 43
    Points
    43
    Par défaut
    voir un peut plus haut,.... j'ecris une requete en dur pour tester sans passer par les champs, et meme sa ne fonctionne pas...!!!!

    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
     
    MYSQL *mySQL;
    mySQL = mysql_init(NULL);
     
     
    AnsiString requete;
    const char* query;
     
    requete = "INSERT INTO gestion_client VALUES('1','toto','titi','rue alphonse toti','93200','Saint ouein','01.06.23.52.32','01.06.23.52.32','01.06.23.52.32','toto')";
     
    query = requete.c_str();
     
    Label16->caption = query; 
     
    mysql_query(mySQL,query);

    le label16 affiche bien la structure de la requete, mais une fois dans la mysql_query ont obtiens une erreur.

  14. #14
    Membre averti Avatar de BOUBOU81
    Profil pro
    system integrator
    Inscrit en
    Juin 2004
    Messages
    358
    Détails du profil
    Informations personnelles :
    Localisation : Allemagne

    Informations professionnelles :
    Activité : system integrator

    Informations forums :
    Inscription : Juin 2004
    Messages : 358
    Points : 315
    Points
    315
    Par défaut
    ça me dis pas quel type de composant tu utilises pour te connecter à MySQL

  15. #15
    Membre du Club
    Inscrit en
    Août 2006
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 79
    Points : 43
    Points
    43
    Par défaut
    API MySql !!!!!!

  16. #16
    Membre averti Avatar de BOUBOU81
    Profil pro
    system integrator
    Inscrit en
    Juin 2004
    Messages
    358
    Détails du profil
    Informations personnelles :
    Localisation : Allemagne

    Informations professionnelles :
    Activité : system integrator

    Informations forums :
    Inscription : Juin 2004
    Messages : 358
    Points : 315
    Points
    315
    Par défaut
    C'est quoi ça, c'est pas d'origine dans Borland.
    J'ai jamais utiliser ça pour me connecter à MySQL.

  17. #17
    Membre chevronné
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Points : 2 189
    Points
    2 189
    Par défaut
    Question stupide, est-ce que tu t'ai connecté à la BD avant de faire la requête? Le code ressemble à:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (!mysql_real_connect(mySQL, "127.0.0.1", "root", "root", "test", 0, NULL, 0)) {
        // la connection a échoué
    } else {
        // la connection a réussi
    }

  18. #18
    Membre du Club
    Inscrit en
    Août 2006
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 79
    Points : 43
    Points
    43
    Par défaut
    AHHHH Enfin tu est là mon ami crayon , ouffff j'éspere que tu arrivera a m'aidez, alors voilà j'ai suivi le tuto su l'API MySql, j'ai meme réussi a créer une fenetre qui demande le login et password d'un user de la base de donnée, pour se connécter a mysql, le soucie et au niveau de l'INSERT INTO, meme le fais de réaliser une requete en dur ne passe pas ->

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    MYSQL *mySQL;
    mySQL = mysql_init(NULL);
     
    AnsiString requete;
    const char* query;
     
    requete = "INSERT INTO gestion_client VALUES('','toto','titi','rue alphonse toti','93200','Saint ouein','01.06.23.52.32','01.06.23.52.32','01.06.23.52.32','toto');";
     
    query = requete.c_str();
     
    mysql_query(mySQL,query);


    voici plutot le source complet


    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
     
     
     MYSQL *mySQL;
     mySQL = mysql_init(NULL);
     
    if (!mysql_real_connect(mySQL, "127.0.0.1", "root", "ga950106", "test", 0, NULL, 0))
     {
    	Application->MessageBox("Erreur de Login ou Password...","", MB_OK|MB_ICONEXCLAMATION);
     }
     else
     {
      AnsiString requete;
      const char* query;
     
      requete = "INSERT INTO gestion_client VALUES('1','toto','titi','rue alphonse toti','93200','Saint ouein','01.06.23.52.32','01.06.23.52.32','01.06.23.52.32','toto');";
     
      query = requete.c_str();
      Label16->Caption = query;
      mysql_query(mySQL,query);
      mysql_close(mySQL);
     }

    Est-ce que je me suit tromper

  19. #19
    Membre du Club
    Inscrit en
    Août 2006
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 79
    Points : 43
    Points
    43
    Par défaut
    c bon j'ai résolu le probléme, il ne venait pas du code, mais tous simplement de MySql, et oui le user en question n'avais pas de droit sur la base de donner, olalalala c vrai que ces dur de faire des enregistrement sans droits,....


    alors voilà, avant de poster je vérifirais tous, mais vraiment tout.....


    A++++

  20. #20
    Membre chevronné
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Points : 2 189
    Points
    2 189
    Par défaut
    Si tout fonctionne n'oublie de mettre

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Probléme requête MySQL , UPDATE
    Par ANTiQE dans le forum Accès aux données
    Réponses: 2
    Dernier message: 13/04/2011, 20h55
  2. Problème requête MySql en fonction du serveur
    Par Lowbaka dans le forum Requêtes
    Réponses: 8
    Dernier message: 31/12/2010, 13h22
  3. problème requête MySql en vb 2008
    Par walid kh dans le forum VB.NET
    Réponses: 0
    Dernier message: 17/03/2010, 13h30
  4. [MySQL] Problème requête Mysql
    Par jbtz64 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 28/05/2008, 14h08
  5. Problème requête MySQL
    Par low-ik dans le forum Requêtes
    Réponses: 4
    Dernier message: 12/03/2007, 16h04

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