Postgresql PQgetvalue:数组返回

时间:2011-05-02 20:03:51

标签: c postgresql libpq

我创建的表格如下:

CREATE TABLE tbl_test
(
  id        bigserial    PRIMARY KEY,
  interest  int          ARRAY[2]
);

我使用PGresult* res

获得PQexec(conn, "SELECT * FROM tbl_test");

现在,如何从int[]获取PQgetvalue(res, 0, 1) 我不想依赖于array.h中定义的结构,因为它们可能会发生变化。

我在Postgresql文档中找不到任何可以执行操作的API 请指教。

的问候,
Mayank

1 个答案:

答案 0 :(得分:6)

除非指定二进制游标,否则PQgetvalue()将返回字段值的字符串表示形式。在任何一种情况下(字符串或二进制光标),您都需要提供代码来将结果操作为您想要的形式。

您可以在PostgreSQL source code中找到一些想法。

  • 的src /后端/ utils的/ ADT / arrayfuncs.c
  • 的src /包括/ utils的/ array.h。

在contrib / intarray中有一些代码。

http://doxygen.postgresql.org/,点击“文件”,然后搜索“数组”。

在PQgetvalue()返回的字符串级别,谷歌可能很容易从一个以逗号分隔的字符串中提取整数的代码。