我在我的项目中使用libpqxx
。项目比较具体,因为不知道会执行什么SQL语句。假设用户输入语句:
从表1中选择*
执行该语句我会得到结果记录,并且可以对其进行迭代。
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
来获取行元素类型
?
最佳答案
Oid 是 postgres 内部的。不是 libpqxx。 只需输入
select typname, oid from pg_type;
在 psql 中。这列出了所有可用的类型。
如果您想使用源文件中的类型,请获取 postgres 源。 http://doxygen.postgresql.org/include_2catalog_2pg__type_8h_source.html
只需在 go 中查看此配置即可获得清晰的外观。忽略类型名称中的 T_(一个下划线)。
关于c++ - 如何使用 libpqxx 检查列类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32135752/