QSqlQuery Postgres множественный выбор - PullRequest
0 голосов
/ 08 декабря 2018

У меня есть запрос, который состоит из двух частей.Первая часть вызывает функцию, которая создает временную таблицу, вторая часть выбирает данные из этой таблицы.

SELECT create_data_slice(15962, NULL, ARRAY[[15726]]);

SELECT
    AK."15962_15726" as AK_NAME
FROM
    t15962 AK
GROUP BY
    AK."15962_15726;"

Если я выполню этот запрос в PgAdmin, он получит правильный результат с данными.Но если я выполню его в Qt:

QSqlDatabase db = store->get_db();
QSqlQuery query(db);
query.exec(sql);

, он выполнит только первую часть (создаст временную таблицу), но не выполнит вторую часть и не вернет данные.

1 Ответ

0 голосов
/ 09 декабря 2018

Вы можете использовать транзакцию следующим образом:

QSqlDatabase::database().transaction();
QSqlQuery query;
query.exec("SELECT create_data_slice(15962, NULL, ARRAY[[15726]]);");
if (query.next()) 
{
    int employeeId = query.value(0).toInt();
    query.exec("SELECT AK."15962_15726" as AK_NAME FROM t15962 AK GROUP BY AK."15962_15726;");
    while(query.next())
    {
         qDebug() << query.value().toString(); ///or what you want to do with data
    }
}
QSqlDatabase::database().commit();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...