NexusForce 1.0.0
A Modern C++ Library with extended functionality, web components, and utility libraries
载入中...
搜索中...
未找到
sqlite_prepared_result.hpp
浏览该文件的文档.
1#ifndef NEFORCE_DATABASE_SQLITE_PREPARED_RESULT_HPP__
2#define NEFORCE_DATABASE_SQLITE_PREPARED_RESULT_HPP__
3
10
11#ifdef NEFORCE_SUPPORT_SQLITE3
12# include <sqlite3.h>
14NEFORCE_BEGIN_NAMESPACE__
15
21
27
43struct NEFORCE_API sqlite_prepared_result final : idb_prepared_result {
44private:
45 ::sqlite3_stmt* stmt_ = nullptr;
46 size_type cursor_ = 0;
47 size_type columns_ = 0;
48
51
52public:
58 sqlite_prepared_result() noexcept = default;
59
66 explicit sqlite_prepared_result(::sqlite3_stmt* statement);
67
74 if (stmt_) {
75 ::sqlite3_reset(stmt_);
76 }
77 }
78
83 NEFORCE_NODISCARD NEFORCE_DEPRECATED_FOR("use COUNT * instead of using this function") size_type
84 row_count() const noexcept override {
85 return 0;
86 }
87
92 NEFORCE_NODISCARD size_type column_count() const noexcept override { return columns_; }
93
98 NEFORCE_NODISCARD bool empty() const noexcept override { return stmt_ == nullptr; }
99
104 NEFORCE_NODISCARD const vector<string_view>& column_names() const noexcept override { return *column_names_; }
105
110 NEFORCE_NODISCARD const vector<int>& column_types() const noexcept { return *column_types_; }
111
116 NEFORCE_NODISCARD bool next() noexcept override;
117
123 NEFORCE_NODISCARD string_view get(size_type n) const noexcept override;
124
130 NEFORCE_NODISCARD bool get_bool(size_type n) const override;
131
137 NEFORCE_NODISCARD int16_t get_int16(size_type n) const override;
138
144 NEFORCE_NODISCARD int32_t get_int32(size_type n) const override;
145
151 NEFORCE_NODISCARD int64_t get_int64(size_type n) const override;
152
158 NEFORCE_NODISCARD float32_t get_float32(size_type n) const override;
159
165 NEFORCE_NODISCARD float64_t get_float64(size_type n) const override;
166
172 NEFORCE_NODISCARD decimal_t get_decimal(size_type n) const override;
173
179 NEFORCE_NODISCARD vector<char> get_blob(size_type n) const override;
180
186 NEFORCE_NODISCARD uint64_t get_bit(size_type n) const noexcept override;
187
193 NEFORCE_NODISCARD date get_date(size_type n) const override { return get_datetime(n).date(); }
194
200 NEFORCE_NODISCARD time get_time(size_type n) const override { return get_datetime(n).time(); }
201
209 NEFORCE_NODISCARD datetime get_datetime(size_type n) const override;
210
216 NEFORCE_NODISCARD timestamp get_timestamp(size_type n) const override;
217};
218 // SQLite3
220 // Database
222
223NEFORCE_END_NAMESPACE__
224#endif
225#endif // NEFORCE_DATABASE_SQLITE_PREPARED_RESULT_HPP__
日期类
日期时间类
NEFORCE_NODISCARD constexpr const _NEFORCE date & date() const noexcept
获取日期部分
NEFORCE_NODISCARD constexpr const _NEFORCE time & time() const noexcept
获取时间部分
时间类
时间戳类
独占智能指针
动态大小数组容器
数据库抽象接口层
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
字符字符串视图
NEFORCE_CONSTEXPR20 unique_ptr< T > make_unique(Args &&... args)
创建unique_ptr
预处理语句执行结果
size_t size_type
大小类型
virtual datetime get_datetime(size_type n) const =0
日期时间类型
virtual size_type row_count() const =0
获取结果集行数
NEFORCE_NODISCARD int16_t get_int16(size_type n) const override
获取16位整数值
NEFORCE_NODISCARD bool empty() const noexcept override
检查结果集是否为空
NEFORCE_NODISCARD size_type column_count() const noexcept override
获取结果集列数
NEFORCE_NODISCARD timestamp get_timestamp(size_type n) const override
获取时间戳值
NEFORCE_NODISCARD uint64_t get_bit(size_type n) const noexcept override
获取BIT位字段值
NEFORCE_NODISCARD float32_t get_float32(size_type n) const override
获取32位浮点值
NEFORCE_NODISCARD NEFORCE_DEPRECATED_FOR("use COUNT * instead of using this function") size_type row_count() const noexcept override
获取结果集行数
NEFORCE_NODISCARD const vector< string_view > & column_names() const noexcept override
获取列名列表
NEFORCE_NODISCARD int32_t get_int32(size_type n) const override
获取32位整数值
NEFORCE_NODISCARD bool next() noexcept override
移动到下一行
NEFORCE_NODISCARD vector< char > get_blob(size_type n) const override
获取BLOB二进制数据
NEFORCE_NODISCARD int64_t get_int64(size_type n) const override
获取64位整数值
NEFORCE_NODISCARD const vector< int > & column_types() const noexcept
获取列类型列表
NEFORCE_NODISCARD datetime get_datetime(size_type n) const override
获取日期时间值
NEFORCE_NODISCARD time get_time(size_type n) const override
获取时间值
NEFORCE_NODISCARD float64_t get_float64(size_type n) const override
获取64位浮点值
NEFORCE_NODISCARD bool get_bool(size_type n) const override
获取布尔值
NEFORCE_NODISCARD decimal_t get_decimal(size_type n) const override
获取十进制值
NEFORCE_NODISCARD date get_date(size_type n) const override
获取日期值
NEFORCE_NODISCARD string_view get(size_type n) const noexcept override
获取字符串值
sqlite_prepared_result() noexcept=default
默认构造函数