@@ -33,10 +33,11 @@ struct istatement
33
33
{
34
34
virtual ~istatement () { };
35
35
virtual void prepare (const std::string& sql) = 0;
36
- virtual iresult_set* execute (const std::string& sql) = 0;
36
+ virtual void call (const std::string& sql) = 0;
37
+ virtual iresult_set* execute (const std::string& sql, bool cursor = false , bool scrollable = false ) = 0;
37
38
virtual iresult_set* execute () = 0;
38
39
virtual bool cancel () = 0;
39
- virtual bool cancel_all () = 0;
40
+ virtual int proc_retval () = 0;
40
41
virtual void set_null (size_t col_idx) = 0;
41
42
virtual void set_short (size_t col_idx, int16_t val) = 0;
42
43
virtual void set_ushort (size_t col_idx, uint16_t val) = 0;
@@ -46,7 +47,6 @@ struct istatement
46
47
virtual void set_ulong (size_t col_idx, uint64_t val) = 0;
47
48
virtual void set_float (size_t col_idx, float val) = 0;
48
49
virtual void set_double (size_t col_idx, double val) = 0;
49
- virtual void set_ldouble (size_t col_idx, long double val) = 0;
50
50
virtual void set_bool (size_t col_idx, bool val) = 0;
51
51
virtual void set_char (size_t col_idx, char val) = 0;
52
52
virtual void set_string (size_t col_idx, const std::string& val) = 0;
@@ -55,7 +55,7 @@ struct istatement
55
55
virtual void set_datetime (size_t col_idx, time_t val) = 0;
56
56
virtual void set_unichar (size_t col_idx, char16_t val) = 0;
57
57
virtual void set_unistring (size_t col_idx, const std::u16string& val) = 0;
58
- virtual void set_image (size_t col_idx, const std::vector<uint8_t >& val) = 0;
58
+ virtual void set_binary (size_t col_idx, const std::vector<uint8_t >& val) = 0;
59
59
};
60
60
61
61
@@ -101,6 +101,15 @@ class statement
101
101
stmt_impl->prepare (sql);
102
102
}
103
103
104
+ /* *
105
+ * Function prepares SQL stored procedure
106
+ * @param sql stored procedure to be executed
107
+ */
108
+ void call (const std::string& proc)
109
+ {
110
+ stmt_impl->call (proc);
111
+ }
112
+
104
113
/* *
105
114
* Function runs last executed SQL statement
106
115
* @return result set object
@@ -113,22 +122,35 @@ class statement
113
122
/* *
114
123
* Function runs SQL statement
115
124
* @param sql statement to be executed
125
+ * @param cursor = true to use cursor with select statements
126
+ * @param scrollable = true to use scrollable cursor
116
127
* @return result set object
117
128
*/
118
- result_set execute (const std::string& sql)
129
+ result_set execute (const std::string& sql, bool cursor = false , bool scrollable = false )
119
130
{
120
- return result_set (stmt_impl->execute (sql));
131
+ return result_set (stmt_impl->execute (sql, cursor, scrollable ));
121
132
}
122
133
123
134
/* *
124
- * Function cancels currently running SQL statement
135
+ * Function cancels currently running SQL statements
125
136
* @return true if canceled, false otherwise
126
137
*/
127
138
bool cancel ()
128
139
{
129
140
return stmt_impl->cancel ();
130
141
}
131
142
143
+ /* *
144
+ * Function returns stored procedure return value.
145
+ * This function must be called after all result sets from stored proc select
146
+ * statements had been processed
147
+ * @return int
148
+ */
149
+ int proc_retval ()
150
+ {
151
+ return stmt_impl->proc_retval ();
152
+ }
153
+
132
154
virtual void set_null (size_t col_idx)
133
155
{
134
156
stmt_impl->set_null (col_idx);
@@ -174,11 +196,6 @@ class statement
174
196
stmt_impl->set_double (col_idx, val);
175
197
}
176
198
177
- virtual void set_ldouble (size_t col_idx, long double val)
178
- {
179
- stmt_impl->set_ldouble (col_idx, val);
180
- }
181
-
182
199
virtual void set_bool (size_t col_idx, bool val)
183
200
{
184
201
stmt_impl->set_bool (col_idx, val);
@@ -219,11 +236,10 @@ class statement
219
236
stmt_impl->set_unistring (col_idx, val);
220
237
}
221
238
222
- virtual void set_image (size_t col_idx, const std::vector<uint8_t >& val)
239
+ virtual void set_binary (size_t col_idx, const std::vector<uint8_t >& val)
223
240
{
224
- stmt_impl->set_image (col_idx, val);
241
+ stmt_impl->set_binary (col_idx, val);
225
242
}
226
- // TODO: add xml, binary, money, lob
227
243
228
244
private:
229
245
friend class connection ;
0 commit comments