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));


here所示,您可以在类实例上调用addDatabase。例如,下一个代码也可以工作(但我不认为我们应该使用此代码):

QSqlDatabase sdb,plus;
plus = sdb.addDatabase("QSQLITE");
plus.setDatabaseName("G:/Database/test.db");

if (!plus.open())
{
       qDebug() << "not open";
}

09-30 14:36
查看更多