У меня есть большая таблица в PostgresDB (55 ГБ).Я хочу отсканировать его в C ++ с помощью QT, подвести итог и отправить обратно в БД.Насколько я понимаю, по умолчанию QSqlQuery передает все данные в основную память.Можно ли указать явный размер буфера для объекта?Можно ли также сказать QT / Postgres, что я хотел бы получить ответ постепенно, т. Е. Не после того, как все данные вычислены и только затем отправлены в программу C ++?
Используемый мной кодследующее:
QSqlDatabase db = QSqlDatabase::addDatabase("QPSQL");
db.setHostName("server");
db.setDatabaseName("db");
db.setUserName("user");
db.setPassword("pass");
bool ok = db.open();
QSqlQuery query;
query.setForwardOnly(true);
query.prepare("select attributes veryLargeTable");
while (query.next()) {
int i = query.value(0).toInt(); // and work with the data
}
Я недавно видел ответ в сети, но я часами искал ответ безуспешно.