@@ -33,10 +33,11 @@ struct istatement
3333{
3434 virtual ~istatement () { };
3535 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;
3738 virtual iresult_set* execute () = 0;
3839 virtual bool cancel () = 0;
39- virtual bool cancel_all () = 0;
40+ virtual int proc_retval () = 0;
4041 virtual void set_null (size_t col_idx) = 0;
4142 virtual void set_short (size_t col_idx, int16_t val) = 0;
4243 virtual void set_ushort (size_t col_idx, uint16_t val) = 0;
@@ -46,7 +47,6 @@ struct istatement
4647 virtual void set_ulong (size_t col_idx, uint64_t val) = 0;
4748 virtual void set_float (size_t col_idx, float val) = 0;
4849 virtual void set_double (size_t col_idx, double val) = 0;
49- virtual void set_ldouble (size_t col_idx, long double val) = 0;
5050 virtual void set_bool (size_t col_idx, bool val) = 0;
5151 virtual void set_char (size_t col_idx, char val) = 0;
5252 virtual void set_string (size_t col_idx, const std::string& val) = 0;
@@ -55,7 +55,7 @@ struct istatement
5555 virtual void set_datetime (size_t col_idx, time_t val) = 0;
5656 virtual void set_unichar (size_t col_idx, char16_t val) = 0;
5757 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;
5959};
6060
6161
@@ -101,6 +101,15 @@ class statement
101101 stmt_impl->prepare (sql);
102102 }
103103
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+
104113 /* *
105114 * Function runs last executed SQL statement
106115 * @return result set object
@@ -113,22 +122,35 @@ class statement
113122 /* *
114123 * Function runs SQL statement
115124 * @param sql statement to be executed
125+ * @param cursor = true to use cursor with select statements
126+ * @param scrollable = true to use scrollable cursor
116127 * @return result set object
117128 */
118- result_set execute (const std::string& sql)
129+ result_set execute (const std::string& sql, bool cursor = false , bool scrollable = false )
119130 {
120- return result_set (stmt_impl->execute (sql));
131+ return result_set (stmt_impl->execute (sql, cursor, scrollable ));
121132 }
122133
123134 /* *
124- * Function cancels currently running SQL statement
135+ * Function cancels currently running SQL statements
125136 * @return true if canceled, false otherwise
126137 */
127138 bool cancel ()
128139 {
129140 return stmt_impl->cancel ();
130141 }
131142
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+
132154 virtual void set_null (size_t col_idx)
133155 {
134156 stmt_impl->set_null (col_idx);
@@ -174,11 +196,6 @@ class statement
174196 stmt_impl->set_double (col_idx, val);
175197 }
176198
177- virtual void set_ldouble (size_t col_idx, long double val)
178- {
179- stmt_impl->set_ldouble (col_idx, val);
180- }
181-
182199 virtual void set_bool (size_t col_idx, bool val)
183200 {
184201 stmt_impl->set_bool (col_idx, val);
@@ -219,11 +236,10 @@ class statement
219236 stmt_impl->set_unistring (col_idx, val);
220237 }
221238
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)
223240 {
224- stmt_impl->set_image (col_idx, val);
241+ stmt_impl->set_binary (col_idx, val);
225242 }
226- // TODO: add xml, binary, money, lob
227243
228244private:
229245 friend class connection ;
0 commit comments