Qt5. Дополнительный коннект, со второй базой.
Код
QSqlDatabase cfgdb;
cfgdb = QSqlDatabase::addDatabase("QSQLITE", "Rules");
cfgdb.setDatabaseName(name);
if (!cfgdb.open()) {
return false;
}
QSqlQuery q(cfgdb);
QString sql;
sql = "SELECT " + rec.value("name").toString() + " FROM " + rec.value("pkey").toString();
if (!q.exec(sql)) {
return false;
}
if (!q.first()) {
return false
} else {
QString a, b;
a = rec.value("value").toString();
b = q.value(0).toString();
if (a == b)
retcode = true;
else
retcode = false;
}
q.finish();
q.clear();
cfgdb.close();
QSqlDatabase::removeDatabase("Rules");
QSqlDatabasePrivate::removeDatabase: connection 'Rules' is still in use, all queries will cease to work.
Все просто. Перед вызовом QSqlDatabase::removeDatabase необходимо чтобы все объекты связанные с указанной базой данных были уничтожены. Об этом напрямую говорится в http://doc.qt.io/qt-5/qsqldatabase.html#removeDatabase.
В вашем случае следует переписать код примерно так:
{
QSqlDatabase cfgdb;
cfgdb = QSqlDatabase::addDatabase("QSQLITE", "Rules");
...
cfgdb.close();
}
QSqlDatabase::removeDatabase("Rules");
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)