我有一个包含两部分的查询。第一部分调用创建临时表的函数,第二部分从该表中选择数据。

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);

它只执行第一部分(创建临时表),但不执行第二部分,也不返回数据。

最佳答案

您可以使用这样的事务:

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();

关于postgresql - QSqlQuery Postgres多重选择,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53686583/

10-11 02:44
查看更多