我有一个包含两部分的查询。第一部分调用功能创建一个临时表,第二部分从该表中选择数据。
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);
它仅执行第一部分(创建临时表),但不执行第二部分,也不返回数据。
答案 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();