
Originally Posted by
Spitfire
First when adding a database, name the connection:
QSqlDatabase::addDatabase( "QMYSQL", "OneNameOrOther" );
To copy to clipboard, switch view to plain text mode
Then use that name to query for the connection:
{
// now do some stuff with it
}
else
{
// connection not found, do something
}
if( QSqlDatabase::contains( "OneNameOrOther" ) )
{
QSqlDatabase db = QSqlDatabase::database( "OneNameOrOther" );
// now do some stuff with it
}
else
{
// connection not found, do something
}
To copy to clipboard, switch view to plain text mode
According to your device i changed my code to this
QSettings settings
("ATSTech",
"StockManager");
settings.beginGroup("database");
/* if( QSqlDatabase::contains( "StockManagerConn" ) )
{
QSqlDatabase db = QSqlDatabase::database( "StockManagerConn" );
qDebug()<<"Database Open : Using Stockmanager Connection";
return true;
}
else
{*/
db.setHostName(settings.value("server").toString());
db.setDatabaseName("stockmanager");
db.setUserName(settings.value("databaseUsername").toString());
db.setPassword(settings.value("databasePassword").toString());
if (!db.open()) {
return false;
}
qDebug()<<"Database Opened : Started Stockmanager Connection";
return true;
//}
settings.endGroup();
QSettings settings("ATSTech", "StockManager");
settings.beginGroup("database");
/* if( QSqlDatabase::contains( "StockManagerConn" ) )
{
QSqlDatabase db = QSqlDatabase::database( "StockManagerConn" );
qDebug()<<"Database Open : Using Stockmanager Connection";
return true;
}
else
{*/
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL","StockManagerConn");
db.setHostName(settings.value("server").toString());
db.setDatabaseName("stockmanager");
db.setUserName(settings.value("databaseUsername").toString());
db.setPassword(settings.value("databasePassword").toString());
if (!db.open()) {
QMessageBox::critical(0, QObject::tr("Database Error"), db.lastError().text());
return false;
}
qDebug()<<"Database Opened : Started Stockmanager Connection";
return true;
//}
settings.endGroup();
To copy to clipboard, switch view to plain text mode
but i started getting this error
Database Opened : Started Stockmanager Connection
ERROR
: inserting Company Name
QSqlError(-1,
"Driver not loaded",
"Driver not loaded")
Database Opened : Started Stockmanager Connection
QSqlQuery::exec: database not open
ERROR : inserting Company Name QSqlError(-1, "Driver not loaded", "Driver not loaded")
To copy to clipboard, switch view to plain text mode
As soon as i remove the connection name it works great.
What could i possibly be doing wrong.
Regards
Bookmarks