gpt4 book ai didi

c++ - 如何使用 libpqxx 检查列类型?

转载 作者:搜寻专家 更新时间:2023-10-31 02:20:52 27 4
gpt4 key购买 nike

我在我的项目中使用 libpqxx。项目比较具体,不知道会执行什么SQL语句。让我们说用户输入语句:

SELECT * FROM table1

执行该语句我得到结果记录并且我可以遍历它。

for( auto row = myresult.begin(); row != myresult.end(); ++row)
{
//Here I can access row elements.
}

如果我知道 row 中第一个元素的 type 是什么,假设它是 int,我可以获得如下值:

int firstElement = row[0].as<int>();

但我不知道。有方法type()(我可以在行元素上调用它)并且它返回类型oid(它是某种列标识符) 它是数值,但我不知道如何使用该值来获取行元素的类型。我的问题是:

是否有一些枚举或其他方法可以使用此 oid 获取行元素 type

最佳答案

Oid 是 postgres 内部的。不是 libpqxx。只需输入

select typname, oid from pg_type;

在 psql 中。这列出了所有可用的类型。

如果你想使用源文件中的类型,获取 postgres 源。 http://doxygen.postgresql.org/include_2catalog_2pg__type_8h_source.html

只要看看这个配置就可以清楚地看到。忽略类型名称中的 T_(一个下划线)。

https://github.com/olt/libpq/blob/master/oid/types.go

关于c++ - 如何使用 libpqxx 检查列类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32135752/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com