我有一个包含两部分的查询。第一部分调用创建临时表的函数,第二部分从该表中选择数据。
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/