Postgresql PQgetvalue:数组返回

发布于 2024-11-04 15:20:00 字数 474 浏览 5 评论 0原文

我创建了一个表,如下所示:

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

我使用 PQexec(conn, "SELECT * FROM tbl_test"); 得到了 PGresult* res

现在,我如何获得 int [] 来自 PQgetvalue(res, 0, 1)
我不想依赖 array.h 中定义的结构,因为它们可能会改变。

我在 Postgresql 文档中找不到任何可以做事的 API。
请指教。

问候,
玛雅克

I've a table created like:

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

I got PGresult* res using PQexec(conn, "SELECT * FROM tbl_test");

Now, how can I get int[] from PQgetvalue(res, 0, 1).
I don't want to depend on structs defined in array.h as they might change.

I could not find any API in Postgresql docs which can do things.
Please advise.

Regards,
Mayank

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

还给你自由 2024-11-11 15:20:00

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

您可能会在 PostgreSQL 源代码 中找到一些想法。

  • src/backend/utils/adt/arrayfuncs.c
  • src/include/utils/array.h。

contrib/intarray 中有一些代码。

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

在字符串级别,即 PQgetvalue() 返回的内容,可能很容易通过 Google 搜索到一些从逗号分隔字符串中提取整数的代码。

PQgetvalue() returns the string representation of the field value unless you specify a binary cursor. In either case (string or binary cursor) you'll need to supply the code to manipulate the result into the form you want.

You might find some ideas in the PostgreSQL source code.

  • src/backend/utils/adt/arrayfuncs.c
  • src/include/utils/array.h.

And there's some code in contrib/intarray.

At http://doxygen.postgresql.org/, click "Files", then search for "array".

At the string level, which is what PQgetvalue() returns, it's probably easy to Google up some code that extracts integers from an comma-delimited string.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文