Russian Qt Forum

Qt => Базы данных => Тема начата: Yegor от Июнь 28, 2013, 15:22



Название: Закрытие соединения с БД.
Отправлено: Yegor от Июнь 28, 2013, 15:22
Здравствуйте!

Когда закрываю соединение с БД:

Код:
    db.close();
    QSqlDatabase::removeDatabase("MyDbConnection");

то в отладочном выводе выскакивает:
QSqlDatabasePrivate::removeDatabase: connection 'MyDbConnection' is still in use, all queries will cease to work.

Что это такое? И что с этим делать?


Название: Re: Закрытие соединения с БД.
Отправлено: Bepec от Июнь 28, 2013, 15:30
У тебя остаются запросы QSqlQuery которые используют это соединение.


Название: Re: Закрытие соединения с БД.
Отправлено: Yegor от Июнь 28, 2013, 17:14
А что нужно сделать с этими QSqlQuery?
Может быть QSqlQuery::clear() ?


Название: Re: Закрытие соединения с БД.
Отправлено: Bepec от Июнь 28, 2013, 17:18
У меня лично таких проблем нет - они у меня удаляются и создаются динамически. Пробуйте.


Название: Re: Закрытие соединения с БД.
Отправлено: kibsoft от Июнь 28, 2013, 17:48
Вот здесь можно прочитать как правильно удалять - https://qt-project.org/doc/qt-4.8/qsqldatabase.html#removeDatabase


Название: Re: Закрытие соединения с БД.
Отправлено: Bepec от Июнь 28, 2013, 17:51
В принципе тот же совет что и у меня - нужно удалять QSqlQuery.


Название: Re: Закрытие соединения с БД.
Отправлено: kibsoft от Июнь 30, 2013, 16:09
>>В принципе тот же совет что и у меня - нужно удалять QSqlQuery.
Я к тому, что сначала надо прочитать документацию, а потом уже задавать вопрос :)