Handling multiple database connections simultaneously
-
I wrote this code,
QSqlDatabase mydb = QSqlDatabase::addDatabase("QSQLITE","First"); mydb.setDatabaseName("/home/pi/git/bc.db"); if(!mydb.open()) { qDebug() << "Can't Connect to DB !"; } else { qDebug() << "Connected Successfully to DB !"; } QSqlDatabase mydb1 = QSqlDatabase::addDatabase("QSQLITE","Second"); mydb1.setDatabaseName("/home/pi/git/Bar_Data.db"); if(!mydb1.open()) { qDebug() << "Can't Connect to DB !"; } else { qDebug() << "Connected Successfully to Bar_Data DB !"; }Connect two databases simultaneously and manage data. But the database doesn't open, where am I doing wrong?
It's showing error :-
-
You have to pass the database you want to use for your QSqlQuery in it's ctor.
-
I wrote this code,
QSqlDatabase mydb = QSqlDatabase::addDatabase("QSQLITE","First"); mydb.setDatabaseName("/home/pi/git/bc.db"); if(!mydb.open()) { qDebug() << "Can't Connect to DB !"; } else { qDebug() << "Connected Successfully to DB !"; } QSqlDatabase mydb1 = QSqlDatabase::addDatabase("QSQLITE","Second"); mydb1.setDatabaseName("/home/pi/git/Bar_Data.db"); if(!mydb1.open()) { qDebug() << "Can't Connect to DB !"; } else { qDebug() << "Connected Successfully to Bar_Data DB !"; }Connect two databases simultaneously and manage data. But the database doesn't open, where am I doing wrong?
It's showing error :-
@Ramkumar-Mohan
Just to expand a bit on @Christian-Ehrlicher's answer.If you call
addDatabase("QSQLITE")like that without passing a connectionName argument then that database becomes the default one and allQSqlQuerys use it by default. But as soon as you pass a second argument as a connectionName,addDatabase("QSQLITE", "someName"), it is not the default, and you must pass that database explicitly toQSqlQuerys (QSqlQuery(mydb)) to make them use that named database. See https://doc.qt.io/qt-6/qsqldatabase.html#addDatabase.