3 // Description: Statement Handle manager.
8 // State's of Statement Handle.
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
28 CSqlOdbcStmt( void ); // Should not create obj without using SQLAllocHandle
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.
37 SQLCHAR cursorName_
[ SQL_MAX_CURSOR_NAME_LEN
];
40 SQLUINTEGER fetchMode_
; // SQL_FETCH_SINGLE_TUPLE or SQL_FETCH_MULTIPLE_TUPLES
44 CSqlOdbcDescList ard_
; // Application Row Descriptor
45 // Bound columns using SQLBindCol()
47 CSqlOdbcDescList ird_
; // Implimentation Row Descriptor
48 // populated during SQLPrepare()
50 CSqlOdbcDescList apd_
; // Application Parameter Descriptor
51 // Bound paramenters using SQLBindParameter()
53 CSqlOdbcDescList ipd_
; // Implimentation Parameter Descriptor
54 // populated during SQLPrepare()
56 AbsSqlStatement
*fsqlStmt_
; // CSQL
58 // Statement Attributes
63 SQLRETURN
chkStateForSQLFreeHandle( void );
64 SQLRETURN
chkStateForSQLFreeStmt( void );
65 SQLRETURN
chkStateForSQLBindCol( void );
66 SQLRETURN
chkStateForSQLBindParameter( void );
68 SQLRETURN
chkStateForSQLPrepare( void );
69 SQLRETURN
chkStateForSQLExecute( void );
70 SQLRETURN
chkStateForSQLExecDirect( void );
71 SQLRETURN
chkStateForSQLFetch( void );
72 SQLRETURN
chkStateForSQLCloseCursor( void );
74 SQLRETURN
chkStateForSQLNumParams( void );
75 SQLRETURN
chkStateForSQLNumResultCols( void );
76 SQLRETURN
chkStateForSQLRowCount( void );
77 SQLRETURN
chkStateForSQLDescribeCol( void );
78 SQLRETURN
chkStateForSQLDescribeParam(void);
80 SQLRETURN
chkStateForSQLSetCursorName( void );
81 SQLRETURN
chkStateForSQLGetCursorName( void );
85 static SQLRETURN
SQLAllocHandle(
86 SQLHANDLE inputHandle
, // IN
87 SQLHANDLE
*outputHandle
);// OUT
89 static SQLRETURN
SQLFreeHandle(
90 SQLHANDLE inputHandle
); // IN
92 SQLRETURN
SQLFreeStmt(
93 SQLUSMALLINT option
); // IN
96 SQLUSMALLINT columnNumber
, // IN
97 SQLSMALLINT targetType
, // IN
98 SQLPOINTER targetValue
, // OUT
99 SQLINTEGER bufferLength
, // IN
100 SQLINTEGER
*ind
); // IN_OUT
102 SQLRETURN
SQLBindParameter(
103 SQLUSMALLINT parameterNumber
,//IN
104 SQLSMALLINT inputOutputType
,// IN
105 SQLSMALLINT valueType
, // IN
106 SQLSMALLINT parameterType
, // IN
107 SQLUINTEGER lengthPrecision
,// IN
108 SQLSMALLINT parameterScale
, // IN
109 SQLPOINTER parameterValue
, // OUT
110 SQLINTEGER bufferLength
, // IN
111 SQLINTEGER
*ind
); // IN_OUT
113 SQLRETURN
SQLPrepare(
114 SQLCHAR
*statementText
, // IN
115 SQLINTEGER textLength
); // IN
117 SQLRETURN
SQLExecute( void );
119 SQLRETURN
SQLExecDirect(
120 SQLCHAR
*statementText
, // IN
121 SQLINTEGER textLength
); // IN
123 SQLRETURN
SQLSetStmtAttr(
124 SQLINTEGER Option
, //IN
125 SQLPOINTER Value
, //IN
126 SQLINTEGER stringLength
); //IN
128 SQLRETURN
SQLFetch();
130 SQLRETURN
SQLCloseCursor();
132 SQLRETURN
SQLSetCursorName(
133 SQLCHAR
*cursorName
, // IN
134 SQLSMALLINT nameLength
); // OUT
136 SQLRETURN
SQLGetCursorName(
137 SQLCHAR
*cursorName
, // OUT
138 SQLSMALLINT bufferLength
, // IN
139 SQLSMALLINT
*nameLength
); // OUT
141 SQLRETURN
SQLNumResultCols(
142 SQLSMALLINT
*columnCount
); // OUT
144 SQLRETURN
SQLRowCount(
145 SQLINTEGER
*rowCount
); // OUT
147 SQLRETURN
SQLDescribeCol(
148 SQLUSMALLINT columnNumber
, // IN
149 SQLCHAR
*columnName
, // OUT
150 SQLSMALLINT bufferLength
, // IN
151 SQLSMALLINT
*nameLength
, // OUT
152 SQLSMALLINT
*dataType
, // OUT
153 SQLUINTEGER
*columnSize
, // OUT
154 SQLSMALLINT
*decimalDigits
,// OUT
155 SQLSMALLINT
*nullable
); // OUT
157 SQLRETURN
SQLColAttribute(
158 SQLUSMALLINT columnNumber
, //IN
159 SQLUSMALLINT fieldIdentifier
,//IN
160 SQLPOINTER characterAttributePtr
,//OUT
161 SQLSMALLINT bufferLength
, //IN
162 SQLSMALLINT
*stringLengthPtr
, //OUT
163 SQLPOINTER numericAttributePtr
); //OUT
165 SQLRETURN
SQLNumParams(
166 SQLSMALLINT
* ParameterCountPtr
); //OUT
168 SQLRETURN
SQLDescribeParam(
169 SQLUSMALLINT paramNumber
, //IN
170 SQLSMALLINT
* dataType
, //OUT
171 SQLUINTEGER
* paramSize
, //OUT
172 SQLSMALLINT
* decimalDigits
, //OUT
173 SQLSMALLINT
* isNullable
); //OUT
176 void resetStmt( void );
179 #endif // _ODBC_STMT_H_