Многие учебники по QSqlDatabase запускают базу данных примерно так:
QSqlDatabase cn = QSqlDatabase::addDatabase("QSQLITE",QString::number(id));
Будет ли это отличаться от этого:
QSqlDatabase cn;
cn.addDatabase("QSQLITE",QString::number(id));
или это:
QSqlDatabase cn;
cn = QSqlDatabase::addDatabase("QSQLITE",QString::number(id));
QSqlDatabase::addDatabase
добавляет базу данных в список подключений к базе данных и возвращает QSqlDatabase
так
QSqlDatabase cn;
cn.addDatabase("QSQLITE",QString::number(id));
это неправильно, и это не будет работать. Конечно, следующий правильный
QSqlDatabase cn;
cn = QSqlDatabase::addDatabase("QSQLITE",QString::number(id));
Это эквивалентно
QSqlDatabase cn = QSqlDatabase::addDatabase("QSQLITE",QString::number(id));
Как указано Вот ты можешь позвонить addDatabase
на экземпляре класса. Например, следующий код тоже работает (но я не думаю, что мы должны использовать это):
QSqlDatabase sdb,plus;
plus = sdb.addDatabase("QSQLITE");
plus.setDatabaseName("G:/Database/test.db");
if (!plus.open())
{
qDebug() << "not open";
}