结论:
只有使用Qt内置的默认连接名的时候,QSqlQuery才可以用空的构造函数,即如下是一一对应的:
mdb = QSqlDatabase::addDatabase("QSQLITE");
// 等价于 q(mdb)
QSqlQuery q;
q.exec("select *...");
又或者指定了连接名,必须要按如下配对:
mdb = QSqlDatabase::addDatabase("QSQLITE","MyConnectName");
// 不能用空构造函数,提示 database not open
QSqlQuery q(mdb);
q.exec("select *...");
结论对于子类化QSqlTableModel这样的模型同样有效,测试代码如下: