la base de bonne sur qt
-
Bonjour tout le monde !
je suis sur une petite application de test et d'évaluation
je voudrais ouvrier la base de données
j’aimerais que quand je lance mon application qu'il m'affiche les listes de base de bonne enregistre
et si c'est vide il écrire par exemple AUNCUN BASE DE BONNES TROUVEAIDE MOI SVP
code backen.cpp
#include "backend.h" #include <QMetaObject> Backend::Backend(QObject *parent) : QObject{parent} { if(!OnConnexion()) { qDebug() << QString::fromUtf8("Impossible de se connecte au base de donnees !"); return; } else { } } void Backend::onGetNameSearch(QString Name) { qDebug() << Name; } bool Backend::OnConnexion() { db = QSqlDatabase::addDatabase("QSQLITE"); db.setHostName("YM"); db.setDatabaseName("DS-DATABASE"); db.setPort('8888'); db.setUserName("JOJO"); db.setPassword("2021"); if(db.open()) { qDebug() << QString::fromUtf8("CONNECTE"); QSqlQuery query("SELECT "); while (query.isActive()) { QString country = query.value(0).toString(); qDebug() << QString::fromUtf8("tjhutfrujf"); } return true; } else { qDebug() << QString::fromUtf8("ECHOUE"); return false; } return false; }
-
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.