Нужно работать с базой MySQL, использую генератор отчётов ncReport2 (почему-то пока не задал имя подключения отличное от дефолтного, ncReport отказывался нормально выборку данных делать), соответственно надо указывать базу данных в параметрах каждого создаваемого QSqlQuery. Так же есть пачка дочерних окон, куда надо будет так же передавать db, чтобы в созданных там запросах вертеть отдельные таблицы. Нужно было сделать возможность перенастройки приложения (да и при закрытии этот варнинг бесит), получился такой вот код
query->finish();
delete query;
db.close();
qDebug() << "BeforeDelete" << db.connectionNames();
db.removeDatabase(db.connectionName());
qDebug() << "AfterDelete" << db.connectionNames();
в лог падает
BeforeDelete ("MYBASE")
QSqlDatabasePrivate::removeDatabase: connection 'MYBASE' is still in use, all queries will cease to work.
AfterDelete ()
Т.е. видно, что подключение удалилось, но варнинг при этом всё равно вываливается. Почему? Как правильно его удалить?
Пробовал через QSqlDatabase::removeDatabase("MYBASE"), так при повторном подключении к базе (после перенастройки) пишет что одноименная база уже есть и будет заменена (т.е. удаление не происходит).