NexusForce 1.0.0
A rigorously engineered full-stack C++ backend library.
载入中...
搜索中...
未找到
mysql_result.hpp
浏览该文件的文档.
1#ifndef NEFORCE_DATABASE_MYSQL_RESULT_HPP__
2#define NEFORCE_DATABASE_MYSQL_RESULT_HPP__
3
10
11#ifdef NEFORCE_SUPPORT_MYSQL
12# include <mysql/mysql.h>
14NEFORCE_BEGIN_NAMESPACE__
15
21
27
40struct NEFORCE_API mysql_result final : idb_tb_result {
41private:
42 ::MYSQL_RES* result_ = nullptr;
43 ::MYSQL_ROW cursor_ = nullptr;
44 size_type rows_ = 0;
45 size_type columns_ = 0;
46
47 unique_ptr<vector<string_view>> column_name_;
49
50public:
57
64 explicit mysql_result(::MYSQL_RES* result);
65
71 ~mysql_result() override;
72
77 NEFORCE_NODISCARD bool empty() const noexcept override { return result_ == nullptr; }
78
83 NEFORCE_NODISCARD size_type row_count() const noexcept override { return rows_; }
84
89 NEFORCE_NODISCARD size_type column_count() const noexcept override { return columns_; }
90
95 NEFORCE_NODISCARD const vector<string_view>& column_names() const noexcept override { return *column_name_; }
96
97 NEFORCE_NODISCARD column_meta column_metadata(size_type n) const override;
98
103 NEFORCE_NODISCARD const vector<::enum_field_types>& column_types() const noexcept { return *column_types_; }
104
109 NEFORCE_NODISCARD bool next() noexcept override;
110
116 NEFORCE_NODISCARD string_view get(size_type n) const noexcept override;
117
124 NEFORCE_NODISCARD bool get_bool(size_type n) const override;
125
132 NEFORCE_NODISCARD int16_t get_int16(size_type n) const override;
133
140 NEFORCE_NODISCARD int32_t get_int32(size_type n) const override;
141
148 NEFORCE_NODISCARD int64_t get_int64(size_type n) const override;
149
156 NEFORCE_NODISCARD float32_t get_float32(size_type n) const override;
157
164 NEFORCE_NODISCARD float64_t get_float64(size_type n) const override;
165
172 NEFORCE_NODISCARD decimal_t get_decimal(size_type n) const override;
173
180 NEFORCE_NODISCARD vector<char> get_blob(size_type n) const override;
181
188 NEFORCE_NODISCARD uint64_t get_bit(size_type n) const override;
189
196 NEFORCE_NODISCARD date get_date(size_type n) const override;
197
204 NEFORCE_NODISCARD time get_time(size_type n) const override;
205
212 NEFORCE_NODISCARD datetime get_datetime(size_type n) const override;
213
220 NEFORCE_NODISCARD timestamp get_timestamp(size_type n) const override;
221};
222 // MySQL
224 // Database
226
227NEFORCE_END_NAMESPACE__
228#endif // NEFORCE_SUPPORT_MYSQL
229#endif // NEFORCE_DATABASE_MYSQL_RESULT_HPP__
日期时间类
独占智能指针
动态大小数组容器
数据库抽象接口层
long int64_t
64位有符号整数类型
float float32_t
32位单精度浮点数类型
unsigned long uint64_t
64位无符号整数类型
long double decimal_t
扩展精度浮点数类型
int int32_t
32位有符号整数类型
double float64_t
64位双精度浮点数类型
short int16_t
16位有符号整数类型
basic_string_view< char > string_view
字符字符串视图
size_t size_type
大小类型
关系型数据库结果集抽象基类
int16_t get_int16(size_type n) const override
获取16位整数值
int32_t get_int32(size_type n) const override
获取32位整数值
column_meta column_metadata(size_type n) const override
获取列元数据
float32_t get_float32(size_type n) const override
获取32位浮点值
string_view get(size_type n) const noexcept override
获取字符串值
bool get_bool(size_type n) const override
获取布尔值
date get_date(size_type n) const override
获取日期值
size_type column_count() const noexcept override
获取结果集列数
time get_time(size_type n) const override
获取时间值
uint64_t get_bit(size_type n) const override
获取BIT位字段值
timestamp get_timestamp(size_type n) const override
获取时间戳值
int64_t get_int64(size_type n) const override
获取64位整数值
mysql_result(::MYSQL_RES *result)
构造函数
size_type row_count() const noexcept override
获取结果集行数
mysql_result()
默认构造函数
const vector< string_view > & column_names() const noexcept override
获取列名列表
float64_t get_float64(size_type n) const override
获取64位浮点值
~mysql_result() override
析构函数
decimal_t get_decimal(size_type n) const override
获取十进制值
const vector<::enum_field_types > & column_types() const noexcept
获取列类型列表
vector< char > get_blob(size_type n) const override
获取BLOB二进制数据
bool next() noexcept override
移动到下一行
bool empty() const noexcept override
检查结果集是否为空
datetime get_datetime(size_type n) const override
获取日期时间值