SQLRETURN UncaughtOdbcEntry() { SQLRETURN error = SQL_ERROR; ENV* env; DBC* dbc; STMT* stmt; switch (mHandleType) { case SQL_HANDLE_ENV: error = rets_SQLFreeEnv((ENV *)mHandle); break; case SQL_HANDLE_DBC: dbc = static_cast<DBC*>(mHandle); env = dbc->getEnv(); error = env->SQLFreeConnect(dbc); break; case SQL_HANDLE_STMT: stmt = static_cast<STMT*>(mHandle); dbc = stmt->getDbc(); error = dbc->SQLFreeStmt(stmt, SQL_DROP); break; default: break; } return error; }