незакрывается подключение к БД после запросов |
Здравствуйте, гость ( Вход | Регистрация )
незакрывается подключение к БД после запросов |
zloyGamer |
6.12.2009, 22:02
Сообщение
#1
|
Студент Группа: Участник Сообщений: 22 Регистрация: 18.7.2009 Пользователь №: 917 Спасибо сказали: 0 раз(а) Репутация: 0 |
подскажите как поправить, или что тут может быть не так, к примеру есть простая форма с вьюхой QSqlQueryModel m_model;
далее если выполнить:
то FB вначале выдает что было 1 соединение а потом 0 а если выполнить какието операции с бд:
то FB вначале выдает что было 1 соединение а после db.close(); всеравно остается 1 соединение, но из приложения уже нельзя выполнять запросы а если далее опять вызвать db.open(); то FB выдает что уже установлено 2 соединения, и т.д. все соединения обрываются тока после закрытия приложения, как это можно исправить? что можно сделать чтобы соединение корректно закрывалось? |
|
|
zloyGamer |
9.12.2009, 20:06
Сообщение
#2
|
Студент Группа: Участник Сообщений: 22 Регистрация: 18.7.2009 Пользователь №: 917 Спасибо сказали: 0 раз(а) Репутация: 0 |
да дествительно видимо что то не так идет в функции isc_detach_database,
ща проверил, вот с этим вариантом нормально работает: if(m_model!=0) { delete m_model; //раньше модель была не динамическая и ДОЛЖНА была уничтожаться вместе с классом формы, но видимо этого не происходило! m_model = 0; } QSqlDatabase db = QSqlDatabase::database( "test" ); db.close(); db.removeDatabase("test"); _on__connect_refresh(); тоесть если явно вызывать delete или m_model->clear(); ДО закрытия бд - то все ок и закрывается, иначе isc_detach_database возвращает значение != 0 ( уменя было ==335544357, я пока ненашел что это за ошибка но над будет както проверить передаваемые параметры) получается надо уничтожить все модели перед тем как закрывать подключение..., хотя в доке явно прописано: void QSqlDatabase::close () Closes the database connection, freeing any resources acquired, and invalidating any existing QSqlQuery objects that are used with the database. This will also affect copies of this QSqlDatabase object. и на основе этого я уже успел нагородить кучу говнокода, оно так и должно работать(необходимо обязательно уничтожать или чистить все модели) или нет? |
|
|
Текстовая версия | Сейчас: 5.12.2024, 0:54 |