首页 文章

QSqlQuery Postgres多选

提问于
浏览
1

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

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 回答

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

相关问题