Reputation: 4499
Many tutorials of QSqlDatabase start a database like this:
QSqlDatabase cn = QSqlDatabase::addDatabase("QSQLITE",QString::number(id));
Would it be different from this:
QSqlDatabase cn;
cn.addDatabase("QSQLITE",QString::number(id));
or this:
QSqlDatabase cn;
cn = QSqlDatabase::addDatabase("QSQLITE",QString::number(id));
Upvotes: 0
Views: 101
Reputation: 18514
QSqlDatabase::addDatabase
adds a database to the list of database connections and returns QSqlDatabase
so
QSqlDatabase cn;
cn.addDatabase("QSQLITE",QString::number(id));
is wrong and it will not work. Of course next is correct
QSqlDatabase cn;
cn = QSqlDatabase::addDatabase("QSQLITE",QString::number(id));
It is equivalent to
QSqlDatabase cn = QSqlDatabase::addDatabase("QSQLITE",QString::number(id));
As pointed here you can call addDatabase
on class instance. For example next code works too (but I don't think that we should use this):
QSqlDatabase sdb,plus;
plus = sdb.addDatabase("QSQLITE");
plus.setDatabaseName("G:/Database/test.db");
if (!plus.open())
{
qDebug() << "not open";
}
Upvotes: 1