-
Notifications
You must be signed in to change notification settings - Fork 16
Expand file tree
/
Copy pathsql_handler.h
More file actions
36 lines (31 loc) · 1.57 KB
/
sql_handler.h
File metadata and controls
36 lines (31 loc) · 1.57 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#pragma once
#include <string>
struct CommonSqlHandler {
virtual void ExecuteQuery(const std::string &sql) = 0;
virtual int32_t ExecuteUpdate(const std::string &sql) = 0;
virtual bool Next() = 0;
virtual size_t GetFetchSize() = 0;
virtual size_t GetRow() = 0;
virtual std::string EscapeString(const std::string &str) { return str; };
~CommonSqlHandler () {}
};
// 需要实现的接口
struct ColumnIndexSqlHandler : public CommonSqlHandler {
virtual bool GetBoolean(uint32_t column_index) const = 0;
virtual long double GetDouble(uint32_t column_index) const = 0;
virtual int32_t GetInt(uint32_t column_index) const = 0;
virtual uint32_t GetUInt(uint32_t column_index) const = 0;
virtual int64_t GetInt64(uint32_t column_index) const = 0;
virtual uint64_t GetUInt64(uint32_t column_index) const = 0;
virtual std::string GetString(uint32_t column_index) const = 0;
};
// 需要实现的接口
struct ColumnLabelSqlHandler : public CommonSqlHandler {
virtual bool GetBoolean(const std::string& column_label) const = 0;
virtual long double GetDouble(const std::string& column_label) const = 0;
virtual int32_t GetInt(const std::string& column_label) const = 0;
virtual uint32_t GetUInt(const std::string& column_label) const = 0;
virtual int64_t GetInt64(const std::string& column_label) const = 0;
virtual uint64_t GetUInt64(const std::string& column_label) const = 0;
virtual std::string GetString(const std::string& column_label) const = 0;
};