22 #ifndef __ODBCXX_ERRORHANDLER_H
23 #define __ODBCXX_ERRORHANDLER_H
25 #include <odbc++/setup.h>
26 #include <odbc++/types.h>
27 #include <odbc++/threads.h>
34 friend class DataStreamBuf;
35 friend class DataStream;
41 WarningList* warnings_;
42 bool collectWarnings_;
54 void _checkErrorODBC2(SQLHENV henv,
58 const ODBCXX_STRING& what,
59 const ODBCXX_STRING& sqlstate = ODBCXX_STRING(
"HY000"));
62 void _checkErrorODBC3(SQLINTEGER handleType,
64 SQLRETURN r,
const ODBCXX_STRING& what,
66 #endif //ODBCVER < 0x0300
68 void _checkStmtError(SQLHSTMT hstmt,
69 SQLRETURN r,
const ODBCXX_CHAR_TYPE* what=ODBCXX_STRING_CONST(
""),
72 if(r==SQL_SUCCESS_WITH_INFO || r==SQL_ERROR) {
75 this->_checkErrorODBC2(SQL_NULL_HENV, SQL_NULL_HDBC, hstmt,
76 r,ODBCXX_STRING_C(what), ODBCXX_STRING_C(sqlstate));
79 this->_checkErrorODBC3(SQL_HANDLE_STMT,hstmt,r,ODBCXX_STRING_C(what), ODBCXX_STRING_C(sqlstate));
85 void _checkConError(SQLHDBC hdbc,
87 const ODBCXX_CHAR_TYPE* what=ODBCXX_STRING_CONST(
""),
89 if(r==SQL_SUCCESS_WITH_INFO || r==SQL_ERROR) {
92 this->_checkErrorODBC2(SQL_NULL_HENV, hdbc, SQL_NULL_HSTMT, r,
93 ODBCXX_STRING_C(what), ODBCXX_STRING_C(sqlstate));
97 this->_checkErrorODBC3(SQL_HANDLE_DBC, hdbc, r, ODBCXX_STRING_C(what), ODBCXX_STRING_C(sqlstate));
103 void _checkEnvError(SQLHENV henv,
105 const ODBCXX_CHAR_TYPE* what=ODBCXX_STRING_CONST(
""),
107 if(r==SQL_SUCCESS_WITH_INFO || r==SQL_ERROR) {
110 this->_checkErrorODBC2(henv,SQL_NULL_HDBC,SQL_NULL_HSTMT,r,
111 ODBCXX_STRING_C(what), ODBCXX_STRING_C(sqlstate));
115 this->_checkErrorODBC3(SQL_HANDLE_ENV,henv,r,ODBCXX_STRING_C(what), ODBCXX_STRING_C(sqlstate));
126 void clearWarnings();
132 WarningList* getWarnings();