crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Правильное закрытие QSqlQuery
512es
  опции профиля:
сообщение 2.12.2010, 13:30
Сообщение #1


Участник
**

Группа: Участник
Сообщений: 135
Регистрация: 31.10.2008
Пользователь №: 407

Спасибо сказали: 5 раз(а)




Репутация:   0  


bool stop = false;
int function()
{
    if (stop) return 1;
    QSqlQuery q;
    q.prepare("SELECT * FROM table WHERE id = ?;");
    q.addBindValue(5);
    if (!q.exec()) return 2; // ну, тут понятно.. ничего не остаётся больше кроме как писать ошибку и выходить из функции. q поидее удалится и ничего лишнего в памяти не останется
    while (q.next()) { // что будет если по каким либо причинам соединение с базой будет разорвано в момент получения строки?
        if (stop) {
            // надо ли делать тут q.clear() ???
            // поидее мы не все ещё выбрали строки запроса
            // или же, выйдя из function(), q удалится и закроет запрос сам?
            return 3;
        }
    }
    return 0;
}

void runFunction()
{
    function();
}


Переменная stop служит для прерывания выполнения цикла, например при закрытии программы.
Остаётся ли какой нибудь мусор в памяти при выходе из функции? Ведь соединение с базой остаётся открытым.

Иногда основной поток программы зависает.. Не пойму, в чём дело
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 26.4.2024, 13:41