corrected to accept hostname and connect to network
[csql.git] / src / odbc / odbcStmt.h
blob37bfad56632be6d21714ef3f7850e5f99b932c11
2 // Class CSqlOdbcStmt
3 // Description: Statement Handle manager.
5 #ifndef _ODBC_STMT_H_
6 #define _ODBC_STMT_H_
8 // State's of Statement Handle.
9 typedef enum
11 S0, // hstmt in unallocated state
12 S1, // hstmt in allocated state
13 S2, // prepared hstmt - no result set will be genarated
14 S3, // prepared hstmt - result set will be genarated
15 S4, // executed hstmt - no result set generated.
16 S5, // executed hstmt - result set generated.
17 S6, // cursor positioned with SQLFetch
18 S7, // cursor positioned with SQLExtendedFetch
19 S8, // Function needs data - SQLParamData not called
20 S9, // Function needs data - SQLPutData not called
21 S10, // Function needs data - SQLPutData called
22 S11, // Still Executing
23 S12 // Asyncronous cancel
24 } StmtState_t ;
26 class CSqlOdbcStmt
28 CSqlOdbcStmt( void ); // Should not create obj without using SQLAllocHandle
30 public:
31 // Top 2 variable declaration should not be moved down.
32 int handleType_; // Handle type.
33 CSqlOdbcError err_; // Last error info.
35 CSqlOdbcDbc *parentDbc_; // Parent Connection Handle.
36 StmtState_t state_;
37 SQLCHAR cursorName_[ SQL_MAX_CURSOR_NAME_LEN ];
38 int rowsAffected_;
39 bool isPrepared_;
41 SQLUINTEGER fetchMode_; // SQL_FETCH_SINGLE_TUPLE or SQL_FETCH_MULTIPLE_TUPLES
43 // Descriptor Lists
44 bool isParamBound_;
45 CSqlOdbcDescList ard_; // Application Row Descriptor
46 // Bound columns using SQLBindCol()
48 CSqlOdbcDescList ird_; // Implimentation Row Descriptor
49 // populated during SQLPrepare()
51 CSqlOdbcDescList apd_; // Application Parameter Descriptor
52 // Bound paramenters using SQLBindParameter()
54 CSqlOdbcDescList ipd_; // Implimentation Parameter Descriptor
55 // populated during SQLPrepare()
57 AbsSqlStatement *fsqlStmt_; // CSQL
59 // Statement Attributes
61 // METHODS
63 // State Transition
64 SQLRETURN chkStateForSQLFreeHandle( void );
65 SQLRETURN chkStateForSQLFreeStmt( void );
66 SQLRETURN chkStateForSQLBindCol( void );
67 SQLRETURN chkStateForSQLBindParameter( void );
69 SQLRETURN chkStateForSQLPrepare( void );
70 SQLRETURN chkStateForSQLExecute( void );
71 SQLRETURN chkStateForSQLExecDirect( void );
72 SQLRETURN chkStateForSQLFetch( void );
73 SQLRETURN chkStateForSQLCloseCursor( void );
75 SQLRETURN chkStateForSQLNumParams( void );
76 SQLRETURN chkStateForSQLNumResultCols( void );
77 SQLRETURN chkStateForSQLRowCount( void );
78 SQLRETURN chkStateForSQLDescribeCol( void );
79 SQLRETURN chkStateForSQLDescribeParam(void);
81 SQLRETURN chkStateForSQLSetCursorName( void );
82 SQLRETURN chkStateForSQLGetCursorName( void );
85 // ODBC API's
86 static SQLRETURN SQLAllocHandle(
87 SQLHANDLE inputHandle, // IN
88 SQLHANDLE *outputHandle );// OUT
90 static SQLRETURN SQLFreeHandle(
91 SQLHANDLE inputHandle); // IN
93 SQLRETURN SQLFreeStmt(
94 SQLUSMALLINT option); // IN
96 SQLRETURN SQLBindCol(
97 SQLUSMALLINT columnNumber, // IN
98 SQLSMALLINT targetType, // IN
99 SQLPOINTER targetValue, // OUT
100 SQLINTEGER bufferLength, // IN
101 SQLINTEGER *ind); // IN_OUT
103 SQLRETURN SQLBindParameter(
104 SQLUSMALLINT parameterNumber,//IN
105 SQLSMALLINT inputOutputType,// IN
106 SQLSMALLINT valueType, // IN
107 SQLSMALLINT parameterType, // IN
108 SQLUINTEGER lengthPrecision,// IN
109 SQLSMALLINT parameterScale, // IN
110 SQLPOINTER parameterValue, // OUT
111 SQLINTEGER bufferLength, // IN
112 SQLINTEGER *ind); // IN_OUT
114 SQLRETURN SQLPrepare(
115 SQLCHAR *statementText, // IN
116 SQLINTEGER textLength); // IN
118 SQLRETURN SQLExecute( void );
120 SQLRETURN SQLExecDirect(
121 SQLCHAR *statementText, // IN
122 SQLINTEGER textLength); // IN
124 SQLRETURN SQLSetStmtAttr(
125 SQLINTEGER Option, //IN
126 SQLPOINTER Value, //IN
127 SQLINTEGER stringLength); //IN
129 SQLRETURN SQLFetch();
131 SQLRETURN SQLCloseCursor();
133 SQLRETURN SQLSetCursorName(
134 SQLCHAR *cursorName, // IN
135 SQLSMALLINT nameLength); // OUT
137 SQLRETURN SQLGetCursorName(
138 SQLCHAR *cursorName, // OUT
139 SQLSMALLINT bufferLength, // IN
140 SQLSMALLINT *nameLength); // OUT
142 SQLRETURN SQLNumResultCols(
143 SQLSMALLINT *columnCount); // OUT
145 SQLRETURN SQLRowCount(
146 SQLINTEGER *rowCount); // OUT
148 SQLRETURN SQLDescribeCol(
149 SQLUSMALLINT columnNumber, // IN
150 SQLCHAR *columnName, // OUT
151 SQLSMALLINT bufferLength, // IN
152 SQLSMALLINT *nameLength, // OUT
153 SQLSMALLINT *dataType, // OUT
154 SQLUINTEGER *columnSize, // OUT
155 SQLSMALLINT *decimalDigits,// OUT
156 SQLSMALLINT *nullable); // OUT
158 SQLRETURN SQLColAttribute(
159 SQLUSMALLINT columnNumber, //IN
160 SQLUSMALLINT fieldIdentifier,//IN
161 SQLPOINTER characterAttributePtr,//OUT
162 SQLSMALLINT bufferLength, //IN
163 SQLSMALLINT *stringLengthPtr, //OUT
164 SQLPOINTER numericAttributePtr); //OUT
166 SQLRETURN SQLNumParams(
167 SQLSMALLINT * ParameterCountPtr); //OUT
169 SQLRETURN SQLDescribeParam(
170 SQLUSMALLINT paramNumber, //IN
171 SQLSMALLINT * dataType, //OUT
172 SQLUINTEGER * paramSize, //OUT
173 SQLSMALLINT * decimalDigits, //OUT
174 SQLSMALLINT * isNullable); //OUT
176 // Other Methods
177 void resetStmt( void );
180 #endif // _ODBC_STMT_H_