我在我的项目中使用libpqxx
。该项目是特定的,因为我不知道将执行什么SQL语句。让我们说用户输入声明:
SELECT * FROM table1
执行该语句我得到了结果记录,我可以通过它进行迭代。
for( auto row = myresult.begin(); row != myresult.end(); ++row)
{
//Here I can access row elements.
}
如果我知道type
中第一个元素的row
是什么,让我们说它是int
,我可以获得价值:
int firstElement = row[0].as<int>();
但我不知道。方法type()
(我可以在行元素上调用它)它return
类型oid
(它是某种列标识符)它是数值,但我不知道如何使用该值来获取行元素的类型。我的问题是:
是否有一些枚举或其他方法可以使用此oid
获取行元素type
?
答案 0 :(得分:2)
Oid是postgres的内部。不是libpqxx。 只需输入
即可select typname, oid from pg_type;
psq中的。这列出了所有可用的类型。
如果要使用源文件中的类型,请获取postgres源代码。 http://doxygen.postgresql.org/include_2catalog_2pg__type_8h_source.html
只需看看这个配置就可以了解一下。忽略类型名称中的T_(一个下划线)。