Некорректное закрытие QSqlDatabase, при использовании QSqlTableModel |
Здравствуйте, гость ( Вход | Регистрация )
Некорректное закрытие QSqlDatabase, при использовании QSqlTableModel |
Гость_silver_* |
4.8.2008, 18:27
Сообщение
#1
|
Гости |
Здравствуйте!
Использую в простеньком приложении QSqlTableModel для отображения и редактирования таблицы. При закрытии программы выдаёт предупреждение
Пробовал в деструкторе окна, где используется модель, делать вещи вроде
не помогает Оно, вроде бы, и нестрашно, но как-то неправильно. Кто-нибудь сталкивался с таким? |
|
|
acen83 |
6.8.2008, 8:28
Сообщение
#2
|
Студент Группа: Участник Сообщений: 23 Регистрация: 11.2.2008 Пользователь №: 91 Спасибо сказали: 0 раз(а) Репутация: 0 |
QSqlDataBase* bd=QSqlDataBase::addConnection("QMYSQL");
// настройка базы, логина и т.п. bd->open(); // запросы bd->close(); затем в другом месте программы повторяя этот код появляется предупреждение QSqlDatabasePrivate::removeDatabase: connection 'qt_sql_default_connection' is still in use, all queries will cease to work. Что делать? Сообщение отредактировал acen83 - 6.8.2008, 8:30 |
|
|
silver |
6.8.2008, 14:43
Сообщение
#3
|
Новичок Группа: Новичок Сообщений: 8 Регистрация: 4.8.2008 Из: Харьков Пользователь №: 250 Спасибо сказали: 1 раз(а) Репутация: 0 |
Что делать? Скорее всего, у тебя остаются висеть незакрытые запросы. Причём не обязательно именно QSqlQuery, но и в виде QSqlQueryModel, QSqlTableModel и так далее по иерархии. Убедись, что к моменту закрытия соединения, все твои модели и запросы либо выходять из области видимости (если создавались на стеке):
либо удаляются оператором delete или родителем (если создал их как QSqlQuery *query = new QSqlQuery). В моём случае проблема была именно в этом. |
|
|
Текстовая версия | Сейчас: 28.1.2025, 11:37 |