22 #ifndef __ODBCXX_STATEMENT_H
23 #define __ODBCXX_STATEMENT_H
25 #include <odbc++/setup.h>
26 #include <odbc++/types.h>
27 #include <odbc++/errorhandler.h>
28 #include <odbc++/connection.h>
46 const DriverInfo* _getDriverInfo()
const {
47 return connection_->_getDriverInfo();
55 int resultSetConcurrency_;
63 StatementState state_;
65 std::vector<ODBCXX_STRING> batches_;
70 void _applyResultSetType();
73 ResultSet* _getTables(
const ODBCXX_STRING& catalog,
74 const ODBCXX_STRING& schema,
75 const ODBCXX_STRING& tableName,
76 const ODBCXX_STRING& types);
78 ResultSet* _getTablePrivileges(
const ODBCXX_STRING& catalog,
79 const ODBCXX_STRING& schema,
80 const ODBCXX_STRING& tableName);
82 ResultSet* _getColumnPrivileges(
const ODBCXX_STRING& catalog,
83 const ODBCXX_STRING& schema,
84 const ODBCXX_STRING& tableName,
85 const ODBCXX_STRING& columnName);
87 ResultSet* _getPrimaryKeys(
const ODBCXX_STRING& catalog,
88 const ODBCXX_STRING& schema,
89 const ODBCXX_STRING& tableName);
91 ResultSet* _getColumns(
const ODBCXX_STRING& catalog,
92 const ODBCXX_STRING& schema,
93 const ODBCXX_STRING& tableName,
94 const ODBCXX_STRING& columnName);
96 ResultSet* _getIndexInfo(
const ODBCXX_STRING& catalog,
97 const ODBCXX_STRING& schema,
98 const ODBCXX_STRING& tableName,
99 bool unique,
bool approximate);
101 ResultSet* _getCrossReference(
const ODBCXX_STRING& pc,
102 const ODBCXX_STRING& ps,
103 const ODBCXX_STRING& pt,
104 const ODBCXX_STRING& fc,
105 const ODBCXX_STRING& fs,
106 const ODBCXX_STRING& ft);
109 ResultSet* _getProcedures(
const ODBCXX_STRING& catalog,
110 const ODBCXX_STRING& schema,
111 const ODBCXX_STRING& procName);
113 ResultSet* _getProcedureColumns(
const ODBCXX_STRING& catalog,
114 const ODBCXX_STRING& schema,
115 const ODBCXX_STRING& procName,
116 const ODBCXX_STRING& colName);
118 ResultSet* _getSpecialColumns(
const ODBCXX_STRING& catalog,
119 const ODBCXX_STRING& schema,
120 const ODBCXX_STRING& table,
121 int what,
int scope,
int nullable);
125 int resultSetType,
int resultSetConcurrency);
128 SQLUINTEGER _getUIntegerOption(SQLINTEGER optnum);
129 ODBCXX_STRING _getStringOption(SQLINTEGER optnum);
131 void _setUIntegerOption(SQLINTEGER optnum, SQLUINTEGER value);
132 void _setStringOption(SQLINTEGER optnum,
const ODBCXX_STRING& value);
134 #if ODBCVER >= 0x0300
135 SQLPOINTER _getPointerOption(SQLINTEGER optnum);
136 void _setPointerOption(SQLINTEGER optnum, SQLPOINTER value);
140 bool _checkForResults();
144 ResultSet* _getResultSet(
bool hideMe =
false);
148 void _beforeExecute();
151 void _afterExecute();
174 virtual bool execute(
const ODBCXX_STRING& sql);
184 virtual ResultSet* executeQuery(
const ODBCXX_STRING& sql);
189 virtual int executeUpdate(
const ODBCXX_STRING& sql);
196 int getUpdateCount();
205 bool getMoreResults();
208 void setCursorName(
const ODBCXX_STRING& name);
218 void setFetchSize(
int size);
222 return resultSetConcurrency_;
227 return resultSetType_;
231 int getQueryTimeout();
233 void setQueryTimeout(
int seconds);
238 void setMaxRows(
int maxRows);
241 int getMaxFieldSize();
243 void setMaxFieldSize(
int maxFieldSize);
250 void setEscapeProcessing(
bool on);
256 bool getEscapeProcessing();
270 #endif // __ODBCXX_STATEMENT_H