Erreur "duplicate connection name 'qt_sql_default_connection', old connection removed"
Bonjour à tous!
Je viens vers vous aujourd'hui car j'ai un problème de connexion avec ma base données. A chaque fois que je lance mon programme à compiler, j'ai ce message d'erreur qui s'affiche: QSqlDatabasePrivate::addDatabase: duplicate connection name 'qt_sql_default_connection', old connection removed.
Je sais d'où ça vient, c'est parceque j'utilise deux fois la syntaxe:
Code:
QSqlDatabase mmlbdd= QSqlDatabase::addDatabase("QSQLITE");
Voila le code dans sa globalité:
Code:
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 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
| #include "bdd.h"
bdd::bdd()
{
QSqlDatabase mmlbdd = QSqlDatabase::addDatabase("QSQLITE");
mmlbdd.setDatabaseName("C:\\Users\\Avatar36\\Desktop\\MyMediaLibraries\\MyMediaLibraries\\MyMediaDB.mml");
if(mmlbdd.open())
{
mmlbdd.close();
qDebug()<<"La bdd est ouverte";
}
else
{
qDebug()<<mmlbdd.lastError().text();
emit BDDAbsente();
}
}
QVariantList bdd::ListerFilms()
{
QSqlDatabase mmlbdd= QSqlDatabase::addDatabase("QSQLITE");
mmlbdd.setDatabaseName("C:\\Users\\Avatar36\\Desktop\\MyMediaLibraries\\MyMediaLibraries\\MyMediaDB.mml");
mmlbdd.open();
QSqlQuery requete(mmlbdd);
QVariantList ListeFilms;
requete.prepare("SELECT * FROM Films");
if (requete.exec())
{
qDebug()<<"étape 1";
while(requete.next()){
QString Titre=requete.value(0).toString();
QString PathJaquette=requete.value(1).toString();
QString SHA1Jaquette=requete.value(2).toString();
qDebug()<<PathJaquette;
QVariantList Ligne=QVariantList() << Titre <<PathJaquette << SHA1Jaquette;
ListeFilms=QVariantList()<<QVariant::fromValue(Ligne);
}
mmlbdd.close();
}
else
{
qDebug()<<"raté";
ListeFilms<<""<<""<<"";
emit RequetteNonPossible(requete.lastError().text());
qDebug()<<requete.lastError().text();
mmlbdd.close();
}
return ListeFilms;
} |
Bien sûr j'ai déjà cherché comment résoudre le problème en rajoutant QSqlDatabase::removeDatabase("QSQLITE"); mais ça ne marche pas. En fait, je ne sais pas comment lui faire comprendre qu'une fois créé dans le constructeur, la connexion est la même dans la fonction "ListerFilms". Je précise que le code marche quand même mais j'aime pas laisser un morceau de code sale.
Merci de m'aider.
Cordialement