NexusForce 1.0.0
A Modern C++ Library with extended functionality, web components, and utility libraries
载入中...
搜索中...
未找到
pgsql_result.hpp
浏览该文件的文档.
1#ifndef NEFORCE_DATABASE_PGSQL_RESULT_HPP__
2#define NEFORCE_DATABASE_PGSQL_RESULT_HPP__
3
10
11#ifdef NEFORCE_SUPPORT_POSTGRESQL
12# include <libpq-fe.h>
14NEFORCE_BEGIN_NAMESPACE__
15
21
27
41class NEFORCE_API pgsql_tb_result final : public idb_tb_result {
42private:
43 ::PGresult* result_ = nullptr;
44 size_type current_row_ = 0;
45 size_type row_count_ = 0;
46 size_type column_count_ = 0;
47 mutable vector<string_view> column_names_;
48 bool owns_result_;
49
50public:
58 explicit pgsql_tb_result(::PGresult* result, bool owns = true);
59
65 ~pgsql_tb_result() override;
66
67 pgsql_tb_result(const pgsql_tb_result&) = delete;
68 pgsql_tb_result& operator=(const pgsql_tb_result&) = delete;
69
74 NEFORCE_NODISCARD bool empty() const noexcept override { return row_count_ == 0; }
75
82 bool is_null(size_type index) const;
83
88 NEFORCE_NODISCARD bool next() noexcept override;
89
94 NEFORCE_NODISCARD size_type row_count() const noexcept override { return row_count_; }
95
100 NEFORCE_NODISCARD size_type column_count() const noexcept override { return column_count_; }
101
108 NEFORCE_NODISCARD const vector<string_view>& column_names() const override;
109
115 NEFORCE_NODISCARD string_view get(size_type index) const override;
116
123 NEFORCE_NODISCARD bool get_bool(size_type index) const override;
124
131 NEFORCE_NODISCARD int16_t get_int16(size_type index) const override;
132
139 NEFORCE_NODISCARD int32_t get_int32(size_type index) const override;
140
147 NEFORCE_NODISCARD int64_t get_int64(size_type index) const override;
148
155 NEFORCE_NODISCARD float32_t get_float32(size_type index) const override;
156
163 NEFORCE_NODISCARD float64_t get_float64(size_type index) const override;
164
171 NEFORCE_NODISCARD decimal_t get_decimal(size_type index) const override;
172
182 NEFORCE_NODISCARD vector<char> get_blob(size_type index) const override;
183
190 NEFORCE_NODISCARD uint64_t get_bit(size_type index) const override;
191
198 NEFORCE_NODISCARD date get_date(size_type index) const override;
199
206 NEFORCE_NODISCARD time get_time(size_type index) const override;
207
214 NEFORCE_NODISCARD datetime get_datetime(size_type index) const override;
215
222 NEFORCE_NODISCARD timestamp get_timestamp(size_type index) const override;
223};
224 // PostgreSQL
226 // Database
228
229NEFORCE_END_NAMESPACE__
230#endif
231#endif // NEFORCE_DATABASE_PGSQL_RESULT_HPP__
日期类
日期时间类
NEFORCE_NODISCARD uint64_t get_bit(size_type index) const override
获取BIT位字段值
NEFORCE_NODISCARD bool next() noexcept override
移动到下一行
NEFORCE_NODISCARD vector< char > get_blob(size_type index) const override
获取BLOB二进制数据
NEFORCE_NODISCARD size_type column_count() const noexcept override
获取结果集列数
NEFORCE_NODISCARD float32_t get_float32(size_type index) const override
获取32位浮点值
NEFORCE_NODISCARD decimal_t get_decimal(size_type index) const override
获取十进制值
NEFORCE_NODISCARD int16_t get_int16(size_type index) const override
获取16位整数值
NEFORCE_NODISCARD float64_t get_float64(size_type index) const override
获取64位浮点值
NEFORCE_NODISCARD const vector< string_view > & column_names() const override
获取列名列表
NEFORCE_NODISCARD int32_t get_int32(size_type index) const override
获取32位整数值
NEFORCE_NODISCARD bool empty() const noexcept override
检查结果集是否为空
NEFORCE_NODISCARD bool get_bool(size_type index) const override
获取布尔值
~pgsql_tb_result() override
析构函数
NEFORCE_NODISCARD int64_t get_int64(size_type index) const override
获取64位整数值
NEFORCE_NODISCARD size_type row_count() const noexcept override
获取结果集行数
NEFORCE_NODISCARD date get_date(size_type index) const override
获取日期值
NEFORCE_NODISCARD datetime get_datetime(size_type index) const override
获取日期时间值
bool is_null(size_type index) const
检查当前行的指定列是否为NULL
NEFORCE_NODISCARD time get_time(size_type index) const override
获取时间值
NEFORCE_NODISCARD timestamp get_timestamp(size_type index) const override
获取时间戳值
NEFORCE_NODISCARD string_view get(size_type index) const override
获取字符串值
pgsql_tb_result(::PGresult *result, bool owns=true)
构造函数
时间类
时间戳类
动态大小数组容器
数据库抽象接口层
float float32_t
32位单精度浮点数类型
long double decimal_t
扩展精度浮点数类型
long long int64_t
64位有符号整数类型
double float64_t
64位双精度浮点数类型
unsigned long long uint64_t
64位无符号整数类型
short int16_t
16位有符号整数类型
int int32_t
32位有符号整数类型
basic_string_view< char > string_view
字符字符串视图
size_t size_type
大小类型
关系型数据库结果集抽象基类