2

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

4

1 回答 1

2

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

select typname, oid from pg_type;

在 psql.This 列出了所有可用的类型。

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

只需查看此配置即可获得干净的外观。忽略类型名称中的 T_(一个下划线)。

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

于 2015-08-30T21:28:41.680 回答