0

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

1 回答 1

1

QSqlDatabase::addDatabase将数据库添加到数据库连接列表并返回QSqlDatabaseso

QSqlDatabase cn;
cn.addDatabase("QSQLITE",QString::number(id));

是错误的,它不会工作。当然 next 是正确的

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";
}
于 2014-10-31T18:21:08.217 回答