Russian Qt Forum

Qt => Базы данных => Тема начата: LeX от Июль 08, 2009, 18:47



Название: qsql_psql
Отправлено: LeX от Июль 08, 2009, 18:47
Есть вопрос, который возможно уже обсуждался, но я ни где не нашёл ответа на него.
Драйвер Postgres в Qt 4.5 (qsql_psql.so) при выполнении запроса к БД (SELECT) загружает все данные в память. Есть ли возможность при выполнении запроса загружать данные кусками, как это реализовано в драйверах QSQLITE и ORACLE, без переписывания самого драйвера?


Название: Re: qsql_psql
Отправлено: LeX от Июль 22, 2009, 12:09
Добрый день.
Весёлый форум ;D
Ответа на элементарный вопрос я не получил, могли бы хоть сказать что не знаете.
В итоге драйвер переписан и работает, другой возможности нет.


Название: Re: qsql_psql
Отправлено: kolob от Февраль 04, 2010, 11:19
Вот это форум, сам вопрос задаешь и сам же на него отвечаешь... :)


Название: Re: qsql_psql
Отправлено: ax от Февраль 04, 2010, 12:54
Попробуй
Код:
query.setForwardOnly(true);
Цитировать
void QSqlQuery::setForwardOnly ( bool forward )
Sets forward only mode to forward. If forward is true, only next() and seek() with positive values, are allowed for navigating the results.

Forward only mode can be (depending on the driver) more memory efficient since results do not need to be cached. It will also improve performance on some databases. For this to be true, you must call setForwardOnly() before the query is prepared or executed. Note that the constructor that takes a query and a database may execute the query.