【问题标题】:QSqlQuery Postgres multiple selectQSqlQuery Postgres 多选
【发布时间】:2018-12-08 20:17:43
【问题描述】:

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

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

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

【问题讨论】:

  • 我在 qt 和 PgAdmin 中尝试这个多重选择:SELECT 1; SELECT 2; PgAdmin 返回值“2”,但 Qt query.exec(sql) 返回一行值“1”

标签: postgresql qt


【解决方案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();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多