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 :

Portabilité d'un projet Qt avec le pilote MySQL


Sujet :

Bases de données

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 165
    Points : 56
    Points
    56
    Par défaut Portabilité d'un projet Qt avec le pilote MySQL
    Bonjour,
    J ai realise un bout de code avec QtCreator qui se connecte a une base de donnee MySQL
    j ai installe le driver tout ca tout ca....
    J ai compile en Release et tout fonctionne sur mon pc. J arrive a me connecte sur un pc en resau cool
    Maintenant je copie le repertoire release ainsi que les dll dans une cle USB:
    Macle :
    - [rep]MonProj
    - [file]monproj.exe
    - [file]Qtcore4.dll
    - [file]QtGui4.dll
    - [file]QtSql.dll
    - [file]mingwm.dll
    - [file]libmySQL.dll
    - [rep] sqldrivers
    -[file] qsqlmysql4.dll

    Lorsque je lance l executable sur l autre pc( j ai pris soins lors de la compilation de mettre 127.0.0.1 pour l host), la connection ne fonctionne pas db.open() renvoie false.
    Ai je oublier une dll ou mal positionne ?
    Merci d avance

  2. #2
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 619
    Points : 188 594
    Points
    188 594
    Par défaut
    Salut,

    La DLL de MySQL doit être dans le même répertoire que le plug-in MySQL :
    - prg.exe
    - qtsql4.dll
    - plugins
    - - sqldrivers
    - - - qsqlmysql4.dll
    - - - libmysql.dll
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 165
    Points : 56
    Points
    56
    Par défaut
    meme en mettant cette configuration cela ne fonctionne pas je ne peu toujours pas me connecter a la base (db.open() renvoie false) cela fonctionne sur le pc ou j ai Qt donc je pense qu il sagit d un probleme de dll.
    J ai bien fait comme dit au dessus mis la libMySQL.dll dans sqldrivers qui est dans plugins.

  4. #4
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 619
    Points : 188 594
    Points
    188 594
    Par défaut
    Question toute simple : tu as bien un serveur MySQL accessible sur 127.0.0.1:13306 ?

    Aussi, il faut renseigner le répertoire de plug-ins dans certains cas : http://qt.developpez.com/doc/4.5/plu...-qt-extensions

    Utilise un outil du genre DependencyWalker (plus trop sûr du nom...) pour vérifier qu'il ne te manque pas d'autre DLL.
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 165
    Points : 56
    Points
    56
    Par défaut
    oui j ai bien un serveur MySQL sur localhost. Est ce oblige d ailleur? Par la suite j aimerai installe l apli sur plusieurs pc et ceux ci se connectrons a une et une seule base heberge sur un pc.
    Je n ai pas tout saisi le lien http://qt.developpez.com/doc/4.5/plu...-qt-extensions
    pourrais tu m éclaircir. Qu est ce?

  6. #6
    Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Juillet 2008
    Messages : 55
    Points : 45
    Points
    45
    Par défaut
    Je sais pas pourquoi ça ne marche pas chez toi, mais promis ça marche.

    J'ai suivi cette doc pour le plugin:
    http://giminik.developpez.com/articl...ebird-openssl/

    en virant ce qui ne m'interessait pas (Firebird et Ssl).

    J'ai mis sur une machine virtuelle fraichement installée avec Xp la release et les dll dans le même répertoire:
    Qtcore4.dll
    QtGui4.dll
    QtSql.dll
    mingwm.dll
    libmySQL.dll

    Ca marche très bien. La dll "libmySQL" je l'ai prise dans dans le dossier bin du répertoire d'installation de MySql essential.

    Ma base mySql se trouve chez un hébergeur donc distant et non en local.

    J'ai repété trois fois cette opération depuis trois lieu différents:
    -recompilation de Qt avec mysql (très long, compter 1 ou 2 heures).
    -sur un pc fraichement installé j'ai démarré le programme avec les dll.

    en compilant un code simple (db.open() etc...) et la demo sqlbrowser de qt.

    Bref, tout ça pour dire que ça m'a pris vraiment la tête de faire marcher ce truc (trop de tutos foireux sur le net), mais qu'une fois que ça marche, ça marche.

  7. #7
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Même problème
    toams69, je suis exactement dans la même config que toi et je viens de trouver ton problème (même si tu l'as résolu ca vaut le coup pour d'autres).

    Ta seule erreur (et j'ai fait la même) est d'avoir mis libmysql.dll dans le répertoire sqldrivers. Or comme le dit h3llmo, il faut le mettre au même niveau que ton .exe et la miracle ca marche !!!

    Pour recap :

    app.exe
    core.dll
    gui.dll
    sql.dll
    libmysql.dll
    ...

    /sqldrivers
    qmysql.dll

    il ne faut pas mettre de répertoire plugins mais directement le nom officiel donné par qt à savoir sqldrivers (faire de même avec les autres types de plugins)

    Le tuto ci-dessous est pas mal mais entaché par l'erreur de mettre libmysql.dll dans le répertoire sqldrivers :
    http://qt.developpez.com/faq/?page=generalites-deploy

    J'y ai passé une aprem et espère que vous gagnerez du temps en lisant mon post !

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

Discussions similaires

  1. comment structurer une modél. UML - projet J2EE avec pattern
    Par RocketArena dans le forum Architecture
    Réponses: 18
    Dernier message: 20/07/2007, 19h20
  2. connection postgresl avec asp + pilote odbc
    Par tony_montana dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 26/01/2005, 16h25
  3. Développre avec les pilotes nvidia
    Par sir_gcc dans le forum OpenGL
    Réponses: 1
    Dernier message: 21/01/2005, 16h44
  4. projet .war avec Eclipse
    Par CapToMatteo dans le forum Eclipse Java
    Réponses: 6
    Dernier message: 20/04/2004, 14h38
  5. Réponses: 14
    Dernier message: 01/09/2003, 15h54

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