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

Bases de données Discussion :

Récupérer contenu d'une lineEdit pour insérer le contenu dans table base Mysql


Sujet :

Bases de données

  1. #1
    Invité
    Invité(e)
    Par défaut Récupérer contenu d'une lineEdit pour insérer le contenu dans table base Mysql
    Bonjour,

    Voila j'essaye de dévelloper un programme qui rempli les champs d'une table a partir d'un formulaire avec des lineEdit !

    Mon problème est simple, en faite je récupère le contenu des lineEdit mais je n'arrive pas a l'insérer correctement dans la table ! Un message d'erreur survient : erreur de segmentation !

    Lorsque j'appui sur le bouton creer j'appelle la procedure creer compte !
    Voici mon code source :
    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
     #include <string>
    #include "CMysql.h"
     
    int id=2;
     
    CMysql *creation = new CMysql;
     
    void Form2 :: init()
    {
        lineEdit2_1->setFocus();
    };
     
    void Form2::destroy()
    {
    };
     
    void Form2::CreerCompte()
    {
        char *requete="/0";
        id++;
     
      sprintf (requete, "insert into user (id, login, pwd) value (%d,%s,%s);", id, lineEdit2_1->text().latin1(),lineEdit2_2->text().latin1());
       // strcpy(requete,"insert into user values (5,chs,'adrien');"); 
        creation->ConnectionBdd ();
        creation->RequeteInsertion(requete);
    }
    Si quelqu'un aurait une solution, même un embryon d'idée se serait cool

    Je prend toutes idées plosible

    Merci d'avance

  2. #2
    Membre expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Points : 3 266
    Points
    3 266
    Par défaut
    Salut,

    Laisse tomber ta lib CMysql, utilise le driver MySql pour Qt, et utilise des requêtes préparées. Et ça marchera impec

  3. #3
    Invité
    Invité(e)
    Par défaut
    Re,

    En faite je n'ai pas expliquer la globalité de mon idée !

    En faite pour l'instant je test mes commandes sql sur une base de données fictive sur mon PC, mais par la suite la base de donnée sera située sur un serveur APACHE !

    Donc je ne sais pas si avec le driver MySql que tu me propose sa fonctionnera toujours

  4. #4
    Membre expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Points : 3 266
    Points
    3 266
    Par défaut
    Heu, là tu t'emmeles sérieusement les pinceaux

    Soit tu communiques avec le serveur MySql en SQL, soit tu communiques avec ta DB par le biais d'apache, et par extension, de scripts côté serveur.

    Dans le premier cas, oui, le plugin se connecte n'importe où du moment qu'il s'agit d'un serveur MySql accessible, avec la bonne auth.

    Dans le second cas, ta technique ne te sera d'absolument aucune aide, puisque les requêtes passeront par des scripts (auquel cas il vaut mieux ne pas envoyer de requête SQL). C'est la méthode générale des RPC.

    Donc.. Dans quel cas es-tu?

  5. #5
    Invité
    Invité(e)
    Par défaut
    Dans ce cas alors je vai rester avec un serveur MySql

  6. #6
    Membre expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Points : 3 266
    Points
    3 266
    Par défaut
    Ok, dans ce cas, tu ferais mieux de bosser avec le driver qmysql pour Qt

    Edit: bien sûr, il faut que tu compiles le driver avec les include/lib correspondant à la version de MySql que tu comptes utiliser plus tard, pas forcément avec le premier download que tu trouveras.

  7. #7
    Invité
    Invité(e)
    Par défaut
    Je vais essayer de faire comme ça alors !


    Merci de tes conseils

  8. #8
    Invité
    Invité(e)
    Par défaut
    Bonjour a tous

    Voila j'ai reussi à faire ce que je voulais donc voila je post une partie du code source de la solution, on sait jamais sa peut toujours servir !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    char *requete; 
     
        QString log =lineEdit2_3->text().latin1(); // Récupération du contenu de la lineEdit
        QString pwd =lineEdit2_4->text().latin1();// Récupération du contenu de la lineEdit
        QString a="\""; // Création d'une QString contenant les cotes a insérer autour des chaines de caracteres
        QString logi=a+log+a; // On rajoute les cotes autours des chaines de caracteres
        QString pass=a+pwd+a; // On rajoute les cotes autours des chaines de caracteres
         const char* login= (const char*) logi; // On effectue un transtipage d'un QString en const char* pour pouvoir effectuer une insertion dans la table
         const char* pswd= (const char*) pass; // On effectue un transtipage d'un QString en const char* pour pouvoir effectuer une insertion dans la table
     
        sprintf (requete,"insert into user (id,login,pwd) values (%d,%s,%s)",id,login,pswd);
        //sprintf (requete,"insert into user (id,login,pwd) values (%d,%s,%s)",id,login,pswd);		      
        creation->ConnectionBdd (); // Connection a la base de données
        creation->RequeteInsertion(requete); // Envoi de la requete a la base
    Voila, et merci à IrmatDen de m'avoir éclairé

  9. #9
    Membre expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Points : 3 266
    Points
    3 266
    Par défaut
    Bah, là t'as surtout des gros trous de sécurité. Les requêtes préparées parent à ce problème.

  10. #10
    Invité
    Invité(e)
    Par défaut
    Salut,

    Pour le projet que je suis entrain de réaliser la sécurité n'est pas importante !

    Donc pas la pein que j'utilise des requetes préparées !

    Merci quand meme d'avoir prévenu

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 03/10/2014, 11h33
  2. Réponses: 7
    Dernier message: 01/07/2014, 20h13
  3. [MySQL] Insert et select pour insérer plusieurs lignes dans table
    Par Khof59 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 10/05/2014, 21h19
  4. Réponses: 3
    Dernier message: 15/02/2014, 18h27
  5. Réponses: 7
    Dernier message: 11/05/2011, 14h51

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