00001
00002
00003
00004 #ifndef _ODBC_DBC_H_
00005 #define _ODBC_DBC_H_
00006 #include<SqlFactory.h>
00007
00008 typedef enum
00009 {
00010 C0,
00011 C1,
00012 C2,
00013 C3,
00014 C4,
00015 C5,
00016 C6
00017 } DbcState_t ;
00018
00019 class CSqlOdbcDbc
00020 {
00021 CSqlOdbcDbc(void);
00022
00023 public:
00024
00025 int handleType_;
00026 CSqlOdbcError err_;
00027
00028 DbcState_t state_;
00029 CSqlOdbcEnv *parentEnv_;
00030 std::vector<CSqlOdbcStmt*> stmtList_;
00031 std::vector<CSqlOdbcDesc*> descList_;
00032 AbsSqlConnection *fsqlConn_;
00033 int mode_;
00034 SQLUINTEGER curAccessMode_;
00035 IsolationLevel curIsolationLevel_;
00036
00037
00038 SQLUINTEGER accessMode_;
00039
00040
00041
00042 IsolationLevel isolationLevel_;
00043
00044
00045
00046
00047
00048 SQLUINTEGER autoCommit_;
00049
00050
00051
00052
00053
00054 SQLRETURN chkStateForSQLFreeHandle( void );
00055 SQLRETURN chkStateForSQLConnect( void );
00056 SQLRETURN chkStateForSQLDisconnect( void );
00057 SQLRETURN chkStateForSQLEndTran( void );
00058 SQLRETURN chkStateForSQLSetConnectAttr( void );
00059
00060
00061 static SQLRETURN SQLAllocHandle(
00062 SQLHANDLE inputHandle,
00063 SQLHANDLE *outputHandle );
00064
00065 static SQLRETURN SQLFreeHandle(
00066 SQLHANDLE inputHandle);
00067
00068 SQLRETURN SQLConnect(
00069 SQLCHAR *serverName,
00070 SQLSMALLINT len1,
00071 SQLCHAR *user,
00072 SQLSMALLINT len2,
00073 SQLCHAR *pass,
00074 SQLSMALLINT len3);
00075
00076 SQLRETURN SQLDisconnect();
00077
00078 SQLRETURN SQLEndTran(
00079 SQLSMALLINT completionType);
00080
00081 SQLRETURN SQLSetConnectAttr(
00082 SQLINTEGER attribute,
00083 SQLPOINTER value,
00084 SQLINTEGER stringLength);
00085
00086 SQLRETURN SQLGetConnectAttr(
00087 SQLINTEGER attribute,
00088 SQLPOINTER value,
00089 SQLINTEGER bufferLength,
00090 SQLINTEGER *stringLength);
00091
00092
00093 };
00094
00095 #endif // _ODBC_DBC_H_