J'ai installer cette version : mysql-5.5.30-winx64
J'ai installer cette version : mysql-5.5.30-winx64
OK.
La version de Qt5 en téléchargement sur le site est compilée en 32bits.
Du coup tu essaye de compiler ton plugin avec une version de Qt et mingw en 32 bits et MySQL en 64bits.
Pour réussir à compiler, il faut donc prendre un version MySQL en 32bits.
Cela devrait résoudre ton pb .
A+
OK,
Il n'arrive pas à lier avec la librairie mysql que tu lui fournit.
peux-tu me donner les commandes exactes que tu saisis (qmake ...) ?
A+
cd C:\Qt\Qt5\5.0.1\Src\qtbase\src\plugins\sqldrivers\mysql
qmake "INCLUDEPATH+=C:\MySQL\include" " LIBS+=C:\MySQL\lib\libmysql.lib" mysql.pro
mingw32-make -f Makefile.Debug
dans la commande qmake, tu as bien doublé les "\" pour INCLUDEPATH et LIBS ?
A+
J'ai essayé en les doublant : même résultat !
Salut,
OK. Tu as bien désinstallé la version 64 bits de MySQL puis installé la version 32 bits ?
A+
Oui je l'ai bien désinstaller ! Je crois plutot qu'il me manque un .dll avec Qt
Non, la dll "qsqlmysqld.dll" est en faite ce que tu dois obtenir une fois la compilation effectuée.
Actuellement, ton souci est qu'il n'arrive pas à lier le code source du plugin avec les librairies DLL de MySQL.
Tu arrives à effectuer des compilations d'applications avec Qt ou ça ne fonctionne pas ?
A+
charlespf
Oui j'arrive a compiler mer programmes !
Si tu m'envoie tes dll compilés sa marchera ?
Mmm, on peut essayer (en pièce jointe) mais pas sûr que cela fonctionne.
Il faut copier les deux fichiers dans le zip dans Qt5.0.1\5.0.1\mingw47_32\plugins\sqldrivers\.
Voir ensuite si Qt arrive à charger le plugin et arrive à se connecter à la BDD.
A+
charlespf
Bon j'ai bien placée les dll et sa ne marche toujours pas : QMYSQL driver not loaded QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3
Ou est ce que j'ai uu problème maintenant ?
C'est bizarre, il te dit que tu as QMYSQL comme driver disponible.
Peux-tu me montrer la ligne qui contient la méthode addDatabase ?
A+
Dans le .pro je ne dois pas y ajouter quelque chose d'autre que QT += sql
Code : Sélectionner tout - Visualiser dans une fenêtre à part QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
Salut,
Non, c'est correct comme ça.
Si tu n'avais pas ajouté "QT += sql" dans le fichier .pro, tu n'aurais pas pu compiler ton application.
Par contre, pour l'erreur de chargement du plugin, je ne vois pas trop pourquoi cela ne fonctionne pas ...
Après il y a aussi la possibilité de passer par le plugin ODBC si tu es sous Windows mais il faudra le compiler aussi, mais celui-ci ne nécessite pas de librairies externes. Il faudra enfin le pilote ODBC Mysql pour que cela fonctionne.
A+
Au fait, tu utilises bien la même version de Qt (strictement exactement la même) en binaire pour ton application que pour compiler le plug-in, de même qu'exactement le même compilateur (il me semble que toute petite incrémentation de version peut poser problème) ? (Une buildkey est incluse dans chaque DLL de Qt, pour vérifier que l'utilisateur ne va pas charger des DLL de plusieurs versions avec des compilateurs différents, ce qui mènerait directement à une explosion de l'Univers, en tout cas de la vue qu'a une application Qt. Si la buildkey de la DLL ne correspond pas à celle qui tente de la charger, l'opération est annulée, c'est peut-être ce qui arrive là.)
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 !
Donc si j'utilise le plug-in ODBC, je pourrais gérer une base de données MySql ? J'ai juste besoin de faire un UPDATE sur celle-ci et peut-être un SELECT ça passera ?
Oui j'ai une seule version de Qt installer et MinGW et livré avec donc j'en ai qu'un aussi normalement !
Oui, ODBC est une sorte de couche d'abstraction et utilisée par les technologies Microsoft pour effectuer des opérations sur les bases de données. Mais ce n'est pas forcément une bonne solution à utiliser surtout si tu souhaites ensuite passer sous Linux par ex.
Cela me paraissait bizarre que mes dll arriveraient à fonctionner sur ta machine. Tu utilises bien l'invite de commande disponible avec Qt pour compiler ?
A+
En fait c'est bon maintenant ! J'ai utilisé La même installation de MySql que toi et du coup en plaçant les dll que tu m'a envoyé j'ai plus l'erreur ! J'ai celle si maintenant :
En utilisant sa :
J'ai sa :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 QMessageBox::critical(0, QObject::tr("Database Error"), db.lastError().text());
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 nativeResourceForWindow: 'handle' requested for null window or window without handle.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager