NexusForce 1.0.0
A Modern C++ Library with extended functionality, web components, and utility libraries
载入中...
搜索中...
未找到
pgsql_tb_result类 参考final

PostgreSQL查询结果集类 更多...

#include <pgsql_result.hpp>

类 pgsql_tb_result 继承关系图:
[图例]

Public 成员函数

 pgsql_tb_result (::PGresult *result, bool owns=true)
 构造函数
 ~pgsql_tb_result () override
 析构函数
NEFORCE_NODISCARD bool empty () const noexcept override
 检查结果集是否为空
bool is_null (size_type index) const
 检查当前行的指定列是否为NULL
NEFORCE_NODISCARD bool next () noexcept override
 移动到下一行
NEFORCE_NODISCARD size_type row_count () const noexcept override
 获取结果集行数
NEFORCE_NODISCARD size_type column_count () const noexcept override
 获取结果集列数
NEFORCE_NODISCARD const vector< string_view > & column_names () const override
 获取列名列表
NEFORCE_NODISCARD string_view get (size_type index) const override
 获取字符串值
NEFORCE_NODISCARD bool get_bool (size_type index) const override
 获取布尔值
NEFORCE_NODISCARD int16_t get_int16 (size_type index) const override
 获取16位整数值
NEFORCE_NODISCARD int32_t get_int32 (size_type index) const override
 获取32位整数值
NEFORCE_NODISCARD int64_t get_int64 (size_type index) const override
 获取64位整数值
NEFORCE_NODISCARD float32_t get_float32 (size_type index) const override
 获取32位浮点值
NEFORCE_NODISCARD float64_t get_float64 (size_type index) const override
 获取64位浮点值
NEFORCE_NODISCARD decimal_t get_decimal (size_type index) const override
 获取十进制值
NEFORCE_NODISCARD vector< char > get_blob (size_type index) const override
 获取BLOB二进制数据
NEFORCE_NODISCARD uint64_t get_bit (size_type index) const override
 获取BIT位字段值
NEFORCE_NODISCARD date get_date (size_type index) const override
 获取日期值
NEFORCE_NODISCARD time get_time (size_type index) const override
 获取时间值
NEFORCE_NODISCARD datetime get_datetime (size_type index) const override
 获取日期时间值
NEFORCE_NODISCARD timestamp get_timestamp (size_type index) const override
 获取时间戳值

额外继承的成员函数

Public 类型 继承自 idb_result
using size_type = size_t
 大小类型
using difference_type = ptrdiff_t
 差值类型

详细描述

PostgreSQL查询结果集类

实现idb_tb_result接口,支持结果集遍历、列名获取和类型安全的数据读取。

主要功能:

  • 结果集元数据获取
  • 逐行遍历结果集
  • 支持多种数据类型转换
  • BYTEA二进制数据处理
  • NULL值检测

在文件 pgsql_result.hpp41 行定义.

构造及析构函数说明

◆ pgsql_tb_result()

pgsql_tb_result::pgsql_tb_result ( ::PGresult * result,
bool owns = true )
explicit

构造函数

参数
resultPostgreSQL结果集句柄
owns是否拥有结果集所有权

获取结果集的行数和列数信息。

被这些函数引用 ~pgsql_tb_result().

◆ ~pgsql_tb_result()

pgsql_tb_result::~pgsql_tb_result ( )
override

析构函数

如果拥有所有权,释放PGresult资源。

引用了 pgsql_tb_result().

成员函数说明

◆ column_count()

NEFORCE_NODISCARD size_type pgsql_tb_result::column_count ( ) const
inlineoverridevirtualnoexcept

获取结果集列数

返回
总列数

实现了 idb_tb_result.

在文件 pgsql_result.hpp100 行定义.

◆ column_names()

NEFORCE_NODISCARD const vector< string_view > & pgsql_tb_result::column_names ( ) const
overridevirtual

获取列名列表

返回
列名视图列表

首次调用时从PGresult中提取列名并缓存。

实现了 idb_tb_result.

◆ empty()

NEFORCE_NODISCARD bool pgsql_tb_result::empty ( ) const
inlineoverridevirtualnoexcept

检查结果集是否为空

返回
无数据返回true

实现了 idb_result.

在文件 pgsql_result.hpp74 行定义.

◆ get()

NEFORCE_NODISCARD string_view pgsql_tb_result::get ( size_type index) const
overridevirtual

获取字符串值

参数
index列索引(从0开始)
返回
字符串视图,NULL返回空字符串

实现了 idb_tb_result.

◆ get_bit()

NEFORCE_NODISCARD uint64_t pgsql_tb_result::get_bit ( size_type index) const
overridevirtual

获取BIT位字段值

参数
index列索引
返回
位字段的整数值
异常
database_typecast_exception解析失败时抛出

实现了 idb_tb_result.

◆ get_blob()

NEFORCE_NODISCARD vector< char > pgsql_tb_result::get_blob ( size_type index) const
overridevirtual

获取BLOB二进制数据

参数
index列索引
返回
字节向量

自动处理PostgreSQL的BYTEA类型:

  • 十六进制格式(\x开头)自动解码
  • 转义格式自动处理

实现了 idb_tb_result.

◆ get_bool()

NEFORCE_NODISCARD bool pgsql_tb_result::get_bool ( size_type index) const
overridevirtual

获取布尔值

参数
index列索引
返回
布尔值
异常
database_typecast_exception解析失败时抛出

实现了 idb_tb_result.

◆ get_date()

NEFORCE_NODISCARD date pgsql_tb_result::get_date ( size_type index) const
overridevirtual

获取日期值

参数
index列索引
返回
日期对象
异常
database_typecast_exception解析失败时抛出

实现了 idb_tb_result.

◆ get_datetime()

NEFORCE_NODISCARD datetime pgsql_tb_result::get_datetime ( size_type index) const
overridevirtual

获取日期时间值

参数
index列索引
返回
日期时间对象
异常
database_typecast_exception解析失败时抛出

实现了 idb_tb_result.

◆ get_decimal()

NEFORCE_NODISCARD decimal_t pgsql_tb_result::get_decimal ( size_type index) const
overridevirtual

获取十进制值

参数
index列索引
返回
十进制数对象
异常
database_typecast_exception解析失败时抛出

实现了 idb_tb_result.

◆ get_float32()

NEFORCE_NODISCARD float32_t pgsql_tb_result::get_float32 ( size_type index) const
overridevirtual

获取32位浮点值

参数
index列索引
返回
32位浮点数
异常
database_typecast_exception解析失败时抛出

实现了 idb_tb_result.

◆ get_float64()

NEFORCE_NODISCARD float64_t pgsql_tb_result::get_float64 ( size_type index) const
overridevirtual

获取64位浮点值

参数
index列索引
返回
64位浮点数
异常
database_typecast_exception解析失败时抛出

实现了 idb_tb_result.

◆ get_int16()

NEFORCE_NODISCARD int16_t pgsql_tb_result::get_int16 ( size_type index) const
overridevirtual

获取16位整数值

参数
index列索引
返回
16位整数
异常
database_typecast_exception解析失败时抛出

实现了 idb_tb_result.

◆ get_int32()

NEFORCE_NODISCARD int32_t pgsql_tb_result::get_int32 ( size_type index) const
overridevirtual

获取32位整数值

参数
index列索引
返回
32位整数
异常
database_typecast_exception解析失败时抛出

实现了 idb_tb_result.

◆ get_int64()

NEFORCE_NODISCARD int64_t pgsql_tb_result::get_int64 ( size_type index) const
overridevirtual

获取64位整数值

参数
index列索引
返回
64位整数
异常
database_typecast_exception解析失败时抛出

实现了 idb_tb_result.

◆ get_time()

NEFORCE_NODISCARD time pgsql_tb_result::get_time ( size_type index) const
overridevirtual

获取时间值

参数
index列索引
返回
时间对象
异常
database_typecast_exception解析失败时抛出

实现了 idb_tb_result.

◆ get_timestamp()

NEFORCE_NODISCARD timestamp pgsql_tb_result::get_timestamp ( size_type index) const
overridevirtual

获取时间戳值

参数
index列索引
返回
时间戳对象
异常
database_typecast_exception解析失败时抛出

实现了 idb_tb_result.

◆ is_null()

bool pgsql_tb_result::is_null ( size_type index) const

检查当前行的指定列是否为NULL

参数
index列索引(从0开始)
返回
NULL返回true
异常
database_exception列索引越界时抛出

◆ next()

NEFORCE_NODISCARD bool pgsql_tb_result::next ( )
overridevirtualnoexcept

移动到下一行

返回
成功移动返回true,到达末尾返回false

实现了 idb_result.

◆ row_count()

NEFORCE_NODISCARD size_type pgsql_tb_result::row_count ( ) const
inlineoverridevirtualnoexcept

获取结果集行数

返回
总行数

实现了 idb_tb_result.

在文件 pgsql_result.hpp94 行定义.

引用了 row_count().

被这些函数引用 row_count().


该类的文档由以下文件生成: