QSqlQuery Postgres多重选择

时间:2018-12-08 20:17:43

标签: postgresql qt

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

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 :(得分:1)

您可以使用这样的事务:

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