我创建的表格如下:
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
答案 0 :(得分:6)
除非指定二进制游标,否则PQgetvalue()将返回字段值的字符串表示形式。在任何一种情况下(字符串或二进制光标),您都需要提供代码来将结果操作为您想要的形式。
您可以在PostgreSQL source code中找到一些想法。
在contrib / intarray中有一些代码。
在http://doxygen.postgresql.org/,点击“文件”,然后搜索“数组”。
在PQgetvalue()返回的字符串级别,谷歌可能很容易从一个以逗号分隔的字符串中提取整数的代码。