Poco C ++如何从PostgreSQL DB读取“文本”数据类型?

时间:2019-08-08 08:00:34

标签: c++ postgresql poco-libraries

我正在执行数据库(PostgreSQL)查询。 Сomment列具有“文本”数据类型。

SELECT Comment FROM table WHERE id = 1;

RecordSet result = query->execute("");
bool more = result .moveFirst();

while (more)
{
  std::string comment = result["Comment"].convert<std::string>());
  or
  std::string comment = result["Comment"].extract<std::string>());

  more = result.moveNext();
}

我遇到异常

  

Poco :: SQL :: UnknownTypeException

如何在不更改数据库数据类型的情况下读取字段?

1 个答案:

答案 0 :(得分:0)

我想通了

Poco::SQL::MetaColumn::ColumnDataType type = result.columnType("Comment");

类型为Poco :: SQL :: MetaColumn :: ColumnDataType :: FDT_CLOB

Poco::SQL::CLOB comment = response["Comment"].extract<Poco::SQL::CLOB>();

如果POCO版本<1.9.1

,请使用相同的https://github.com/pocoproject/poco/issues/2566