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 :

Comment utiliser QtSql pour communiquer avec un serveur MySQL ?


Sujet :

Bases de données

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    174
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 174
    Par défaut Comment utiliser QtSql pour communiquer avec un serveur MySQL ?
    Bonjour, j'essaie de créer un programme qui va permettre de communiquer avec une base de données MySql sur un serveur externe de mon réseau.
    J'utilise la librairie QSqlDatabase de Qt afin de parvenir à écrire dans les table que j'ai créée mais lors de l'execution du programme aucune infos n'est enregistrer dans la BDD.
    Voici mon 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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    #include <iostream>
    #include <QApplication>
    #include <QPushButton>
    #include <QtSql\QSqlDatabase>
    #include <QtSql\QSqlQuery>
    using namespace std;
     
    int main(int argc, char* argv[])
    {
        QApplication app(argc, argv);
        QWidget fenetrep; 
        QSqlQuery query;
     
        QPushButton b1("bouton",&fenetrep);
        QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
     
     
        db.setDatabaseName("/*nomBDD*/");
        db.setUserName("/*nomUtilisateur*/");
        db.setPassword("/*passe*/");
        db.setHostName("/*serveur*/");
        if(db.open())
        {
        cout << "ouverture OK" <<endl;
     
        query=db.exec("INSERT INTO `/*nomBDD*/`.`/*table*/` (`id` ,`arb` ,`sto` ,`che` )VALUES (NULL , '0', '0', 'test')");
     
     
        }
     
        fenetrep.show();
        return app.exec();
    }
    mon fichier *.pro
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    ######################################################################
    # Automatically generated by qmake (2.01a) jeu. 8. mai 11:19:04 2008
    ######################################################################
     
    TEMPLATE = app
    TARGET = 
    DEPENDPATH += .
    INCLUDEPATH += .
     
    # Input
    SOURCES += main.cpp
    CONFIG += console
    QT += sql
    La table où je veut enregistrer est contenu dans la Base de Donnée (le nom de la base de donnée est remplacé par /*nomBDD*/ ). Cette table contient 4 champs : id ,arb ,sto ,che.

    pouvez vous m'aidez à résoudre ce probleme?

    merci d'avance de vos réponses

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    174
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 174
    Par défaut
    j'ai modifier cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
    en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    Mais le probleme en changeant cette ligne c'est qu'à l'execution du programme, un message m'informe que QMYSQL n'a pas été chargé:
    QSqlDatabase: QMYSQL driver not loaded
    QSqlDatabase: available drivers: QSQLITE QODBC3 QODBC

  3. #3
    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
    Par défaut
    Salut,

    As-tu compilé le plugin mysql?

  4. #4
    Alp
    Alp est déconnecté
    Expert confirmé

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Par défaut
    Citation Envoyé par IrmatDen Voir le message
    Salut,

    As-tu compilé le plugin mysql?
    A l'évidence non

    Je crois que le problème de la compilation du plugin mysql a déjà été traité ici, essaye d'utiliser la fonction "Recherche Avancée" du forum

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 41
    Par défaut
    Bonjour à tous!

    J'ai envie de faire exactement la même chose! Par contre j'ai pas trop réussi à comprendre ce qu'il fallait faire pour y arriver

    Il faut installer un plug in? compiler avec, il faut rajouter une ligne dans le .pro? Il faut que je réinstalle Qt?

    Mon projet est de faire un petit programme de plannification, donc je risque de revenir dans le coin et soyez sympa, changez pas de trottoir quand j'arrive


    Merci par avance

  6. #6
    Alp
    Alp est déconnecté
    Expert confirmé

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Par défaut
    Ne t'inquiètes pas on traine dans le coin.

    Sinon, tu pourras trouver la solution en cherchant "driver mysql" par exemple dans le forum.


  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 41
    Par défaut
    En fait donc, si j'ai bien suivi parce que je crois que j'ai le cerveau lent (ouioui, j'aime faire des jeux de mots bien foireux), je vais sur le site de MySQL ensuite je télécharge et j'installe les librairies pour le C?

    Est ce bien cela?

  8. #8
    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
    Par défaut
    Oui. Tu utilises Windows (mingw ou VS?) ou linux?

  9. #9
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 41
    Par défaut
    Salut et merci,

    donc j'utilise windows actuellement avec mingw car j'ai un problème avec code::blocks installé sur ubuntu (j'arrive pas à faire d'espace, mais je verrais ça plus tard).

Discussions similaires

  1. Des chercheurs utilisent NAO pour communiquer avec des autistes
    Par Stéphane le calme dans le forum Actualités
    Réponses: 3
    Dernier message: 22/03/2013, 15h45
  2. Réponses: 6
    Dernier message: 11/05/2010, 20h46
  3. Réponses: 5
    Dernier message: 25/09/2009, 16h16
  4. Serveur java pour communique avec mysql ?
    Par AsmCode dans le forum JDBC
    Réponses: 2
    Dernier message: 15/02/2008, 20h21
  5. Réponses: 6
    Dernier message: 03/05/2007, 11h28

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