la base de bonne sur qt
-
Bonsoir,
SQLite est une base de donnée basée sur un fichier. C'est un peu étrange de voir des paramètres qui semblent correspondre à une base de données réseau.
Il y a cet article du wiki qui peut également aider ce projet.
-
@SGaist merci pour votre réponse
En fait je viens de regle le problème
void Backend::onConnexion() { QSqlDatabase sqlDb = QSqlDatabase::addDatabase("MySQL", "test-wikilivres"); sqlDb.setHostName("localhost"); sqlDb.setUserName("wikilivres"); sqlDb.setPassword("mot-de-passe-secret"); sqlDb.setDatabaseName("wikilivres"); if (sqlDb.open()) { qDebug()<< QString::fromUtf8(("La base de données a bien été chargée !"), 5000); } else { qDebug()<< QString::fromUtf8("Échec de connexion") + (" ") + sqlDb.lastError().text() + tr("."); } }
mais na ne marche pas, il affiche
QSqlDatabase: MySQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QODBC QPSQL
"Échec de connexion Driver not loaded Driver not loaded." -
@SGaist Non tout semble bien terminé il m'a afficher aucun erreur.
Mais quand je compilé le programme il a aucun différence il m'afficheQSqlDatabase: MySQL driver not loaded QSqlDatabase: available drivers: QSQLITE QODBC QPSQL "Échec de connexion Driver not loaded Driver not loaded."
Rien a changé
-
@SGaist merci pour votre réponse ☺️
Enfaite je sais pas trop mais j'ai suivie le tutoriel et j'ai tout terminé mais le problème n'a pas changé.
J'ai le fichier qsqlmysql.dll surC:/Qt/6.6.0/src/windows/plugins/sqldrivers/qsqlmysql.dll
Est-ce que je dois faire encore ?
-
Est-ce que la librairie client de MySQL est trouvable au travers de la variable d'environnement PATH ? Celle-ci peut être modifiée dans Qt Creator, dans les paramètres d'exécution du projet.
Dans tous les cas, démarrer l'application avec la variable d'environnement QT_DEBUG_PLUGINS à 1 permet d'avoir plus d'information sur ce qui se passe.
-
@SGaist Merci pour votre réponse
Il m'affiche plusieurs infos mais c'est ça qui nous intéresse nonqt.core.plugin.factoryloader: Got keys from plugin méta data Qlist("QPSQL") qt.core.plugin.factoryloader: checking directory Pathé "A:/Qt-Projet/build-Pd-Desktop_Qt_6_6_0_MinGW_64_bit-Debug/debug/sqldrivers" ...
QSqlDatabase: QMYSQL driver loaded QSqlDatabase :available drivers: QSLITE QMIMER QODBC QPSQL
Mais si je copie le dll
C:/Qt/6.6.0/src/windows/plugins/sqldrivers/qsqlmysql.dll
sur
C:\Qt\6.6.0\mingw_64\plugins\sqldrivers
ça m'affiche
qt.core.plugin.factoryloader: Got keys from plugin meta data QList("QPSQL") qt.core.plugin.factoryloader: checking directory path "A:/Qt-Projet/build-Pd-Desktop_Qt_6_6_0_MinGW_64_bit-Debug/debug/sqldrivers" ... qt.core.library: "C:/Qt/6.6.0/mingw_64/plugins/sqldrivers/qsqlmysql.dll" cannot load: Impossible de charger la bibliothèque C:\Qt\6.6.0\mingw_64\plugins\sqldrivers\qsqlmysql.dll : %1 n’est pas une application Win32 valide. qt.core.plugin.loader: QLibraryPrivate::loadPlugin failed on "C:/Qt/6.6.0/mingw_64/plugins/sqldrivers/qsqlmysql.dll" : "Impossible de charger la bibliothèque C:\\Qt\\6.6.0\\mingw_64\\plugins\\sqldrivers\\qsqlmysql.dll : %1 n’est pas une application Win32 valide." QSqlDatabase: QMYSQL driver not loaded QSqlDatabase: available drivers: QSQLITE QMIMER QMARIADB QMYSQL QODBC QPSQL
Merci
-
C'est cette étape de copie qui manquait.
Il faut compiler le plugin pour debug et release et les copier ensuite.
-
Pour autant que je me souvienne correctement, cmake ne fait pas les deux compilations en même temps.
Pour assurer de tout avoir, je recommande de faire un second build avec
-DCMAKE_BUILD_TYPE=Debug
ajouté lors de la configuration.