1738556 Primitive ODBC Driver
[csql.git] / src / odbc / odbcDbc.h
blobd166aae1635988b357ce805408efad109b6bd915
1 // Class CSqlOdbcDbc
2 // Description: Database Connection Handle manager.
4 #ifndef _ODBC_DBC_H_
5 #define _ODBC_DBC_H_
7 // State's of Connection Handle.
8 typedef enum
10 C0, // henv not allocated,hdbc not allocated
11 C1, // henv allocated,hdbc not allocated
12 C2, // henv allocated,hdbc allocated
13 C3, // Connection function needs data
14 C4, // Connected hdbc
15 C5, // Connected hdbc, allocated statement
16 C6 // Connected hdbc, Transaction in progress
17 } DbcState_t ;
19 class CSqlOdbcDbc
21 CSqlOdbcDbc(void); // Should not create obj without using SQLAllocHandle
23 public:
24 // Top 2 variable declaration should not be moved down.
25 int handleType_; // Handle type.
26 CSqlOdbcError err_; // Last error info.
28 DbcState_t state_; // Environment State.
29 CSqlOdbcEnv *parentEnv_; // Parent Environment Handle.
30 std::vector<CSqlOdbcStmt*> stmtList_; // Statement handle list.
31 std::vector<CSqlOdbcDesc*> descList_; // Descriptor handle list.
32 SqlConnection fsqlConn_; // FastSQL connection object. // CSQL
33 SQLUINTEGER curAccessMode_;
34 IsolationLevel curIsolationLevel_;
36 // Connection Attributes
37 SQLUINTEGER accessMode_; // Transaction access mode
38 // SQL_MODE_READ_ONLY OR
39 // SQL_MODE_READ_WRITE
41 IsolationLevel isolationLevel_;// Transaction Isolation Level.
42 // SQL_TXN_READ_UNCOMMITTED
43 // SQL_TXN_READ_COMMITTED
44 // SQL_TXN_REPEATABLE_READ
45 // SQL_TXN_SERIALIZABLE
47 SQLUINTEGER autoCommit_; // Automatically Commit after execution.
48 // SQL_AUTOCOMMIT_ON
49 // SQL_AUTOCOMMIT_OFF
51 // METHODS
52 // State Transition
53 SQLRETURN chkStateForSQLFreeHandle( void );
54 SQLRETURN chkStateForSQLConnect( void );
55 SQLRETURN chkStateForSQLDisconnect( void );
56 SQLRETURN chkStateForSQLEndTran( void );
57 SQLRETURN chkStateForSQLSetConnectAttr( void );
59 // ODBC API's
60 static SQLRETURN SQLAllocHandle(
61 SQLHANDLE inputHandle, // IN
62 SQLHANDLE *outputHandle );// OUT
64 static SQLRETURN SQLFreeHandle(
65 SQLHANDLE inputHandle); // IN
67 SQLRETURN SQLConnect( // All param's are IN
68 SQLCHAR *serverName,
69 SQLSMALLINT len1,
70 SQLCHAR *user,
71 SQLSMALLINT len2,
72 SQLCHAR *pass,
73 SQLSMALLINT len3);
75 SQLRETURN SQLDisconnect();
77 SQLRETURN SQLEndTran(
78 SQLSMALLINT completionType);// IN
80 SQLRETURN SQLSetConnectAttr(
81 SQLINTEGER attribute, // IN
82 SQLPOINTER value, // IN
83 SQLINTEGER stringLength); // IN
85 SQLRETURN SQLGetConnectAttr(
86 SQLINTEGER attribute, // IN
87 SQLPOINTER value, // OUT
88 SQLINTEGER bufferLength, // IN
89 SQLINTEGER *stringLength); // OUT
91 // Others
94 #endif // _ODBC_DBC_H_