[cpp]
QSqlDatabase db = QSqlDatabase::addDatabase(“QMYSQL”);
db.setDatabaseName(“hoge”);
〜略〜
db.open();
〜処理〜
QString connName;
connName = db.connectionName();
db.close();
db.removeDatabase(connName);
[/cpp]
みたいな感じで接続しててきとうに処理してcloseとremoveDatabaseすると、
connection 'qt_sql_default_connection' is still in use, all queries will cease to work
とか言われて死ぬ。(別に死なない)
どうやら、db.close()してもdbはデータベースへの参照情報を保持したままでいるらしい。dbをリセットしてやるとエラーも出ずにうまくいく。
結局、こんな感じにするといいみたい。(お片付け部分だけ)
[cpp]
QString connName;
connName = db.connectionName();
db.close();
db = QSqlDatabase();
db.removeDatabase(connName);
[/cpp]
db = QSqlDatabaseがミソ。リセットだー。
参考はこちら→warning remove database - Stack Overflow
おしまい。