-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdb_clause.h
More file actions
203 lines (173 loc) · 5.24 KB
/
db_clause.h
File metadata and controls
203 lines (173 loc) · 5.24 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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
#ifndef _DATABASE_CLAUSE_H_
#define _DATABASE_CLAUSE_H_
#include <common.h>
#include "cursor_window.h"
typedef enum
{
DB_WHERE_CLAUSE,
DB_HAVING_CLAUSE
}DatabaseClauseType;
struct _DatabaseClause;
typedef struct _DatabaseClause DatabaseClause;
/**
* @brief destroy database clause
* @param[in] thiz DatabaseClause instance
*/
extern void db_clause_destroy(DatabaseClause* clause);
/**
* @brief create a database clause
* @param[in] statement clause statement
* @param[in] value_num the number of data which need bind
* @return DatabaseClause instance
*/
extern DatabaseClause* db_clause_create(DatabaseClauseType type,CHAR* statement,INT32 value_num);
/**
* @brief duplicate a database clause
* @param[in] src source database clause
* @return DatabaseClause instance
*/
extern DatabaseClause* db_clause_duplicate(DatabaseClause* src);
/**
* @brief create a where database clause
* @param[in] statement clause statement
* @param[in] value_num the number of data which need bind
* @return DatabaseClause instance
*/
extern DatabaseClause* db_where_clause_create(CHAR* statement,INT32 value_num);
/**
* @brief create a having database clause
* @param[in] statement clause statement
* @param[in] value_num the number of data which need bind
* @return DatabaseClause instance
*/
extern DatabaseClause* db_having_clause_create(CHAR* statement,INT32 value_num);
/**
* @brief get statement
* @param[in] thiz DatabaseClause handle
* @return statement
*/
extern const CHAR* db_clause_get_statement(DatabaseClause* thiz);
/**
* @brief set statement
* @param[in] thiz DatabaseClause handle
* @param[in] statement statement
* @return error code
*/
extern BOOL db_clause_set_statement(DatabaseClause* thiz,const CHAR* statement);
/**
* @brief append where statement
* @param[in] thiz DatabaseClause handle
* @param[in] where_str where statement
* @return error code
*/
extern BOOL db_clause_append_where(DatabaseClause* thiz,const CHAR* where_str);
/**
* @brief get data count which needs bind
* @param[in] thiz DatabaseClause handle
* @return data number
*/
extern INT32 db_clause_get_data_count(DatabaseClause* thiz);
/**
* @brief get data which needs bind
*
* @param[in] thiz DatabaseClause handle
* @param[in] idx index
* @param[out] len save the data length
* @param[out] data save the data
* @return bool code
*/
extern BOOL db_clause_get_data(DatabaseClause* thiz,INT32 idx,UINT8* type,INT32* len,void** data);
/**
* @brief put int value
*
* @param[in] thiz DatabaseClause handle
* @param[in] col index
* @param[in] value int value
* @return bool code
*/
extern BOOL db_clause_put_int(DatabaseClause* thiz,INT32 col,INT64 value);
/**
* @brief put double value
*
* @param[in] thiz DatabaseClause handle
* @param[in] col index
* @param[in] value double value
* @return bool code
*/
extern BOOL db_clause_put_double(DatabaseClause* thiz,INT32 col,double value);
/**
* @brief put string value
*
* @param[in] thiz DatabaseClause handle
* @param[in] col index
* @param[in] value string value
* @return bool code
*/
extern BOOL db_clause_put_string(DatabaseClause* thiz,INT32 col,const CHAR* value);
/**
* @brief put wstring value
*
* @param[in] thiz DatabaseClause handle
* @param[in] col index
* @param[in] value wstring value
* @return bool code
*/
extern BOOL db_clause_put_string_16(DatabaseClause* thiz,INT32 col,const WCHAR* value);
/**
* @brief put blob value
*
* @param[in] thiz DatabaseClause handle
* @param[in] col index
* @param[in] value blob value
* @param[in] len blob value length
* @return bool code
*/
extern BOOL db_clause_put_blob(DatabaseClause* thiz,INT32 col,const void* value,INT32 len);
/**
* @brief get int value
*
* @param[in] thiz DatabaseClause handle
* @param[in] col index
* @param[out] value int value
* @return bool code
*/
extern BOOL db_clause_get_int(DatabaseClause* thiz,INT32 col,INT64* value);
/**
* @brief get double value
*
* @param[in] thiz DatabaseClause handle
* @param[in] col index
* @param[out] value double value
* @return bool code
*/
extern BOOL db_clause_get_double(DatabaseClause* thiz,INT32 col,double* value);
/**
* @brief get string value
*
* @param[in] thiz DatabaseClause handle
* @param[in] col index
* @return string value
*/
extern const CHAR* db_clause_get_string(DatabaseClause* thiz,INT32 col);
/**
* @brief get wstring value
*
* @param[in] thiz DatabaseClause handle
* @param[in] col index
* @return wstring value
*/
extern const WCHAR* db_clause_get_string_16(DatabaseClause* thiz,INT32 col);
/**
* @brief get blob value
*
* @param[in] thiz DatabaseClause handle
* @param[in] col index
* @param[out] value blob value length
* @return blob value
*/
extern const void* db_clause_get_blob(DatabaseClause* thiz,INT32 row,INT32 col,INT32* len);
/** where clause */
typedef DatabaseClause DatabaseWhereClause;
/** having clause */
typedef DatabaseClause DatabaseHavingClause;
#endif