[Qt-interest] Duplicate connection name 'qt_sql_default_connection', old connection removed.

Riccardo Roasio riccardo.roasio at gmail.com
Fri Sep 25 11:30:20 CEST 2009


Hi,

i have a calls that i use to connect to a mysql database
The problem that i'experiencing is that if i create more than one
object of this type it gives me this error:

QSqlDatabasePrivate::addDatabase: duplicate connection name
'qt_sql_default_connection', old connection removed.

How can i solve the problem?

Thanks so much,
Riccardo

The class is this one:

#include "mysqlconnection.h"

MysqlConnection::MysqlConnection(QString h,QString d,QString u,QString p)
{
   host=h;
   database=d;
   username=u;
   password=p;
}

void MysqlConnection::destroy()
{
   QSqlDatabase::removeDatabase("QMYSQL");
}

QSqlQuery MysqlConnection::insertQuery(QString q)
{
   QSqlQuery query_result;
   {
    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    db.setHostName(host);
    db.setDatabaseName(database);
    db.setUserName(username);
    db.setPassword(password);
    if(db.open())
    {
        query_result=db.exec(q);
        db.close();
    }
   }

}

QSqlQuery MysqlConnection::selectQuery(QString q)
{
   QSqlQuery query_result;
   {
    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    db.setHostName(host);
    db.setDatabaseName(database);
    db.setUserName(username);
    db.setPassword(password);
    if(db.open())
    {
        query_result=db.exec(q);
        db.close();
    }
   }
    return query_result;
}

QSqlQuery MysqlConnection::updateQuery(QString q)
{
   QSqlQuery query_result;
   {
    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    db.setHostName(host);
    db.setDatabaseName(database);
    db.setUserName(username);
    db.setPassword(password);
    if(db.open())
    {
        query_result=db.exec(q);
        db.close();
    };
   }
}

QSqlQuery MysqlConnection::deleteQuery(QString q)
{
   QSqlQuery query_result;
   {
    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    db.setHostName(host);
    db.setDatabaseName(database);
    db.setUserName(username);
    db.setPassword(password);
    if(db.open())
    {
        query_result=db.exec(q);
        db.close();
    };
   }
}



More information about the Qt-interest-old mailing list