首页 > 解决方案 > 读取 SELECT'ed 值并将其作为 int 存储在 C 中

问题描述

看起来我无法弄清楚这一点。我一直在阅读 POSTGRESQL 手册,但它并没有深入探讨这个特定问题,这就是我在这里寻求帮助的原因。主要目的是我想把我的查询答案变成一个变量。我读到它需要使用 PQgetvalue ..?但是我只有 res 并且无法弄清楚将什么作为其他两个变量.. PQgetvalue 应按如下方式使用:

char *PQgetvalue(const PGresult *res,
                 int row_number,
                 int column_number);

这是我的代码的一部分,我要求查询

char o[255];
    sprintf(o, "SELECT credits FROM subject WHERE id_subject = %d;", id_subject);
    printf("%s\n", o);
    res = PQexec(conn, o);
    CREDITS = PQgetvalue(res, , );
    printf("CREDITS= %d", CREDITS);

如果我只是在 MySQL 中使用该查询,它会给我正确的答案,但我想获取该查询的整数值并将其存储在 CREDITS 中。

我在网上的几个代码示例中看到 i 和 j 被用作另外两个变量,但这对我来说没有意义,因为我没有循环任何东西..?

任何帮助表示赞赏!

标签: cpostgresql

解决方案


根据文档PQgetvalue的参数是:

const PGresult *res
int row_number
int column_number

更远:

返回 PGresult 的一行的单个字段值。行号和列号从 0 开始。

因此,如果您要获取旨在返回单个字段的查询的结果,我想0列号和行号的值都是正确的。


推荐阅读