连接 QSql数据库有什么区别?

What's difference in connect a QSqlDatabase?

本文关键字:区别 什么 QSql 数据库 连接      更新时间:2023-10-16

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";
}