crossplatform.ru

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

> Утечка памяти QSqlQuery.next()
guest456
  опции профиля:
сообщение 2.8.2017, 12:45
Сообщение #1


Новичок


Группа: Неактивирован
Сообщений: 3
Регистрация: 2.8.2017
Пользователь №: 4598

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




Репутация:   0  


Добрый день уважаемые форумчане. Есть простейший код выборки из базы данных sqlite. Проблема в том, что в базе есть очень большое число различных строк. При работе с небольшими базами, проблем нет. А при большой базе, программа вылетает с ошибкой out of memory.

        if(!CreateConnection())
        {
            return;
        }
        QSqlQuery query;
        if(!query.exec("SELECT * FROM adress"))
        {
            qDebug() << query.lastError();
            return;
        }
        QString str;
        while(query.next())
        {
            //str= query.value(0).toString();
            //qDebug() << domen;
        }


При работе программы, количество потребляемой памяти доходит до 800MB и программа вылетает. Как правильно делать выборку с больших по размеру баз. Спасибо.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
lanz
  опции профиля:
сообщение 2.8.2017, 13:18
Сообщение #2


Старейший участник
****

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

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




Репутация:   8  


Я посмотрел исходники, там драйвер кеширует результаты, поэтому да, вы правы, он все съел :)
Попробуйте LIMIT/OFFSET как я писал выше.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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


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




RSS Текстовая версия Сейчас: 19.4.2024, 15:05