xref: /AOO41X/main/connectivity/source/inc/odbc/OFunctions.hxx (revision caf5cd79edad04a48dcaf209068b3b89eae4622e)
1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 
23 
24 #ifndef _CONNECTIVITY_ODBC_OFUNCTIONS_HXX_
25 #define _CONNECTIVITY_ODBC_OFUNCTIONS_HXX_
26 
27 #include "odbc/OFunctiondefs.hxx"
28 #include <rtl/ustring.hxx>
29 #include <osl/module.h>
30 
31 namespace connectivity
32 {
33 
34 //  sal_Bool LoadFunctions(oslModule pODBCso, sal_Bool _bDS=sal_True);
35 //  sal_Bool LoadLibrary_ODBC3(::rtl::OUString &_rPath);
36 //  sal_Bool LoadLibrary_ADABAS(::rtl::OUString &_rPath);
37 
38     // Connecting to a data source
39     typedef SQLRETURN  (SQL_API  *T3SQLAllocHandle) (SQLSMALLINT HandleType,SQLHANDLE InputHandle,SQLHANDLE *   OutputHandlePtr);
40 
41     #define N3SQLAllocHandle(a,b,c) (*(T3SQLAllocHandle)getOdbcFunction(ODBC3SQLAllocHandle))(a,b,c)
42 
43     typedef SQLRETURN  (SQL_API  *T3SQLConnect) (SQLHDBC ConnectionHandle,SQLCHAR *ServerName,SQLSMALLINT   NameLength1,SQLCHAR *UserName,SQLSMALLINT NameLength2,SQLCHAR *Authentication,SQLSMALLINT NameLength3);
44 
45     #define N3SQLConnect(a,b,c,d,e,f,g) (*(T3SQLConnect)getOdbcFunction(ODBC3SQLConnect))(a,b,c,d,e,f,g)
46 
47     typedef SQLRETURN  (SQL_API  *T3SQLDriverConnect) ( SQLHDBC         ConnectionHandle,
48                                                         HWND            WindowHandle,
49                                                         SQLCHAR *       InConnectionString,
50                                                         SQLSMALLINT     StringLength1,
51                                                         SQLCHAR *       OutConnectionString,
52                                                         SQLSMALLINT     BufferLength,
53                                                         SQLSMALLINT *   StringLength2Ptr,
54                                                         SQLUSMALLINT    DriverCompletion);
55 
56     #define N3SQLDriverConnect(a,b,c,d,e,f,g,h) (*(T3SQLDriverConnect)getOdbcFunction(ODBC3SQLDriverConnect))(a,b,c,d,e,f,g,h)
57 
58     typedef SQLRETURN  (SQL_API  *T3SQLBrowseConnect) ( SQLHDBC         ConnectionHandle,
59                                                         SQLCHAR *       InConnectionString,
60                                                         SQLSMALLINT     StringLength1,
61                                                         SQLCHAR *       OutConnectionString,
62                                                         SQLSMALLINT     BufferLength,
63                                                         SQLSMALLINT *   StringLength2Ptr);
64 
65     #define N3SQLBrowseConnect(a,b,c,d,e,f) (*(T3SQLBrowseConnect)getOdbcFunction(ODBC3SQLBrowseConnect))(a,b,c,d,e,f)
66 
67     // Obtaining information about a driver and data source
68     typedef SQLRETURN  (SQL_API  *T3SQLDataSources) (   SQLHENV         EnvironmentHandle,
69                                                         SQLUSMALLINT    Direction,
70                                                         SQLCHAR *       ServerName,
71                                                         SQLSMALLINT     BufferLength1,
72                                                         SQLSMALLINT *   NameLength1Ptr,
73                                                         SQLCHAR *       Description,
74                                                         SQLSMALLINT     BufferLength2,
75                                                         SQLSMALLINT *   NameLength2Ptr);
76 
77     #define N3SQLDataSources(a,b,c,d,e,f,g,h) (*(T3SQLDataSources)getOdbcFunction(ODBC3SQLDataSources))(a,b,c,d,e,f,g,h)
78 
79     typedef SQLRETURN  (SQL_API  *T3SQLDrivers) (   SQLHENV         EnvironmentHandle,
80                                                     SQLUSMALLINT    Direction,
81                                                     SQLCHAR *       DriverDescription,
82                                                     SQLSMALLINT     BufferLength1,
83                                                     SQLSMALLINT *   DescriptionLengthPtr,
84                                                     SQLCHAR *       DriverAttributes,
85                                                     SQLSMALLINT     BufferLength2,
86                                                     SQLSMALLINT *   AttributesLengthPtr);
87 
88     #define N3SQLDrivers(a,b,c,d,e,f,g,h) (*(T3SQLDrivers)getOdbcFunction(ODBC3SQLDrivers))(a,b,c,d,e,f,g,h)
89 
90     typedef SQLRETURN  (SQL_API  *T3SQLGetInfo) (   SQLHDBC         ConnectionHandle,
91                                                     SQLUSMALLINT    InfoType,
92                                                     SQLPOINTER      InfoValuePtr,
93                                                     SQLSMALLINT     BufferLength,
94                                                     SQLSMALLINT *   StringLengthPtr);
95 
96     #define N3SQLGetInfo(a,b,c,d,e) (*(T3SQLGetInfo)getOdbcFunction(ODBC3SQLGetInfo))(a,b,c,d,e)
97 
98     typedef SQLRETURN  (SQL_API  *T3SQLGetFunctions) (SQLHDBC           ConnectionHandle,
99                                                     SQLUSMALLINT    FunctionId,
100                                                     SQLUSMALLINT *  SupportedPtr);
101 
102     #define N3SQLGetFunctions(a,b,c) (*(T3SQLGetFunctions)getOdbcFunction(ODBC3SQLGetFunctions))(a,b,c)
103 
104     typedef SQLRETURN  (SQL_API  *T3SQLGetTypeInfo) (   SQLHSTMT    StatementHandle,
105                                                     SQLSMALLINT     DataType);
106 
107     #define N3SQLGetTypeInfo(a,b) (*(T3SQLGetTypeInfo)getOdbcFunction(ODBC3SQLGetTypeInfo))(a,b)
108 
109     // Setting and retrieving driver attributes
110     typedef SQLRETURN (SQL_API *T3SQLSetConnectAttr)(SQLHDBC        ConnectionHandle,
111                                                     SQLINTEGER      Attribute,
112                                                     SQLPOINTER      ValuePtr,
113                                                     SQLINTEGER      StringLength);
114 
115     #define N3SQLSetConnectAttr(a,b,c,d) (*(T3SQLSetConnectAttr)getOdbcFunction(ODBC3SQLSetConnectAttr))(a,b,c,d)
116 
117     typedef SQLRETURN (SQL_API *T3SQLGetConnectAttr) (SQLHDBC       ConnectionHandle,
118                                                     SQLINTEGER      Attribute,
119                                                     SQLPOINTER      ValuePtr,
120                                                     SQLINTEGER      BufferLength,
121                                                     SQLINTEGER*     StringLength);
122 
123     #define N3SQLGetConnectAttr(a,b,c,d,e) (*(T3SQLGetConnectAttr)getOdbcFunction(ODBC3SQLGetConnectAttr))(a,b,c,d,e)
124 
125 
126     typedef SQLRETURN (SQL_API *T3SQLSetEnvAttr) (  SQLHENV         EnvironmentHandle,
127                                                     SQLINTEGER      Attribute,
128                                                     SQLPOINTER      ValuePtr,
129                                                     SQLINTEGER      StringLength);
130 
131     #define N3SQLSetEnvAttr(a,b,c,d) (*(T3SQLSetEnvAttr)getOdbcFunction(ODBC3SQLSetEnvAttr))(a,b,c,d)
132 
133     typedef SQLRETURN (SQL_API *T3SQLGetEnvAttr) (  SQLHENV         EnvironmentHandle,
134                                                     SQLINTEGER      Attribute,
135                                                     SQLPOINTER      ValuePtr,
136                                                     SQLINTEGER      BufferLength,
137                                                     SQLINTEGER*     StringLength);
138 
139     #define N3SQLGetEnvAttr(a,b,c,d,e) (*(T3SQLGetEnvAttr)getOdbcFunction(ODBC3SQLGetEnvAttr))(a,b,c,d,e)
140 
141 
142     typedef SQLRETURN (SQL_API *T3SQLSetStmtAttr) ( SQLHSTMT        StatementHandle,
143                                                     SQLINTEGER      Attribute,
144                                                     SQLPOINTER      ValuePtr,
145                                                     SQLINTEGER      StringLength);
146 
147     #define N3SQLSetStmtAttr(a,b,c,d) (*(T3SQLSetStmtAttr)getOdbcFunction(ODBC3SQLSetStmtAttr))(a,b,c,d)
148 
149     typedef SQLRETURN (SQL_API *T3SQLGetStmtAttr) ( SQLHSTMT        StatementHandle,
150                                                     SQLINTEGER      Attribute,
151                                                     SQLPOINTER      ValuePtr,
152                                                     SQLINTEGER      BufferLength,
153                                                     SQLINTEGER*     StringLength);
154 
155     #define N3SQLGetStmtAttr(a,b,c,d,e) (*(T3SQLGetStmtAttr)getOdbcFunction(ODBC3SQLGetStmtAttr))(a,b,c,d,e)
156 
157     // Setting and retrieving descriptor fields
158     /*typedef SQLRETURN (SQL_API *T3SQLSetDescField) (SQLHDESC      DescriptorHandle,
159                                                     SQLSMALLINT     RecNumber,
160                                                     SQLSMALLINT     FieldIdentifier,
161                                                     SQLPOINTER      ValuePtr,
162                                                     SQLINTEGER      BufferLength);
163 
164     #define N3SQLSetDescField(a,b,c,d,e) (*(T3SQLSetDescField)getOdbcFunction(ODBC3SQLSetDescField))(a,b,c,d,e)
165 
166     typedef SQLRETURN (SQL_API *T3SQLGetDescField) (    SQLHDESC        DescriptorHandle,
167                                                     SQLSMALLINT     RecNumber,
168                                                     SQLSMALLINT     FieldIdentifier,
169                                                     SQLPOINTER      ValuePtr,
170                                                     SQLINTEGER      BufferLength,
171                                                     SQLINTEGER *    StringLengthPtr);
172 
173     #define N3SQLGetDescField(a,b,c,d,e,f) (*(T3SQLGetDescField)getOdbcFunction(ODBC3SQLGetDescField))(a,b,c,d,e,f)
174 
175 
176     typedef SQLRETURN (SQL_API *T3SQLGetDescRec) (  SQLHDESC            DescriptorHandle,
177                                                     SQLSMALLINT         RecNumber,
178                                                     SQLCHAR *           Name,
179                                                     SQLSMALLINT         BufferLength,
180                                                     SQLSMALLINT *       StringLengthPtr,
181                                                     SQLSMALLINT *       TypePtr,
182                                                     SQLSMALLINT *       SubTypePtr,
183                                                     SQLLEN *            LengthPtr,
184                                                     SQLSMALLINT *       PrecisionPtr,
185                                                     SQLSMALLINT *       ScalePtr,
186                                                     SQLSMALLINT *       NullablePtr);
187 
188     #define N3SQLGetDescRec(a,b,c,d,e,f,g,h,i,j,k) (*(T3SQLGetDescRec)getOdbcFunction(ODBC3SQLGetDescRec))(a,b,c,d,e,f,g,h,i,j,k)
189 
190 
191     typedef SQLRETURN (SQL_API *T3SQLSetDescRec) (  SQLHDESC            DescriptorHandle,
192                                                     SQLSMALLINT         RecNumber,
193                                                     SQLSMALLINT         Type,
194                                                     SQLSMALLINT         SubType,
195                                                     SQLINTEGER          Length,
196                                                     SQLSMALLINT         Precision,
197                                                     SQLSMALLINT         Scale,
198                                                     SQLPOINTER          DataPtr,
199                                                     SQLLEN *            StringLengthPtr,
200                                                     SQLLEN *            IndicatorPtr);
201 
202     #define N3SQLSetDescRec(a,b,c,d,e,f,g,h,i,j) (*(T3SQLSetDescRec)getOdbcFunction(ODBC3SQLSetDescRec))(a,b,c,d,e,f,g,h,i,j)
203     */
204 
205     // Preparing SQL requests
206     typedef SQLRETURN  (SQL_API  *T3SQLPrepare) (       SQLHSTMT            StatementHandle,
207                                                     SQLCHAR *           StatementText,
208                                                     SQLINTEGER          TextLength);
209 
210     #define N3SQLPrepare(a,b,c) (*(T3SQLPrepare)getOdbcFunction(ODBC3SQLPrepare))(a,b,c)
211 
212     typedef SQLRETURN (SQL_API  *T3SQLBindParameter) (SQLHSTMT          StatementHandle,
213                                                     SQLUSMALLINT        ParameterNumber,
214                                                     SQLSMALLINT         InputOutputType,
215                                                     SQLSMALLINT         ValueType,
216                                                     SQLSMALLINT         ParameterType,
217                                                     SQLULEN             ColumnSize,
218                                                     SQLSMALLINT         DecimalDigits,
219                                                     SQLPOINTER          ParameterValuePtr,
220                                                     SQLLEN              BufferLength,
221                                                     SQLLEN *            StrLen_or_IndPtr);
222 
223     #define N3SQLBindParameter(a,b,c,d,e,f,g,h,i,j) (*(T3SQLBindParameter)getOdbcFunction(ODBC3SQLBindParameter))(a,b,c,d,e,f,g,h,i,j)
224 
225     /*typedef SQLRETURN (SQL_API  *T3SQLGetCursorName) (SQLHSTMT            StatementHandle,
226                                                     SQLCHAR *           CursorName,
227                                                     SQLSMALLINT         BufferLength,
228                                                     SQLSMALLINT *       NameLengthPtr);
229 
230     #define N3SQLGetCursorName(a,b,c,d) (*(T3SQLGetCursorName)getOdbcFunction(ODBC3SQLGetCursorName))(a,b,c,d)
231     */
232 
233     typedef SQLRETURN (SQL_API  *T3SQLSetCursorName) (SQLHSTMT          StatementHandle,
234                                                     SQLCHAR *           CursorName,
235                                                     SQLSMALLINT         NameLength);
236 
237     #define N3SQLSetCursorName(a,b,c) (*(T3SQLSetCursorName)getOdbcFunction(ODBC3SQLSetCursorName))(a,b,c)
238 
239     // Submitting requests
240     typedef SQLRETURN  (SQL_API  *T3SQLExecute) (       SQLHSTMT            StatementHandle);
241 
242     #define N3SQLExecute(a) (*(T3SQLExecute)getOdbcFunction(ODBC3SQLExecute))(a)
243 
244     typedef SQLRETURN  (SQL_API  *T3SQLExecDirect) (    SQLHSTMT            StatementHandle,
245                                                     SQLCHAR *           StatementText,
246                                                     SQLINTEGER          TextLength);
247 
248     #define N3SQLExecDirect(a,b,c) (*(T3SQLExecDirect)getOdbcFunction(ODBC3SQLExecDirect))(a,b,c)
249 
250     /*typedef SQLRETURN  (SQL_API  *T3SQLNativeSql) (   SQLHDBC             ConnectionHandle,
251                                                     SQLCHAR *           InStatementText,
252                                                     SQLINTEGER          TextLength1,
253                                                     SQLCHAR *           utStatementText,
254                                                     SQLINTEGER          BufferLength,
255                                                     SQLINTEGER *        TextLength2Ptr);
256 
257     #define N3SQLNativeSql(a,b,c,d,e,f) (*(T3SQLNativeSql)getOdbcFunction(ODBC3SQLNativeSql))(a,b,c,d,e,f)*/
258 
259     typedef SQLRETURN (SQL_API  *T3SQLDescribeParam) (SQLHSTMT          StatementHandle,
260                                                     SQLUSMALLINT        ParameterNumber,
261                                                     SQLSMALLINT *       DataTypePtr,
262                                                     SQLULEN *           ParameterSizePtr,
263                                                     SQLSMALLINT *       DecimalDigitsPtr,
264                                                     SQLSMALLINT *       NullablePtr);
265 
266     #define N3SQLDescribeParam(a,b,c,d,e,f) (*(T3SQLDescribeParam)getOdbcFunction(ODBC3SQLDescribeParam))(a,b,c,d,e,f)
267 
268     typedef SQLRETURN  (SQL_API  *T3SQLNumParams) ( SQLHSTMT            StatementHandle,
269                                                     SQLSMALLINT *       ParameterCountPtr);
270 
271     #define N3SQLNumParams(a,b) (*(T3SQLNumParams)getOdbcFunction(ODBC3SQLNumParams))(a,b)
272 
273     typedef SQLRETURN  (SQL_API  *T3SQLParamData) ( SQLHSTMT            StatementHandle,
274                                                     SQLPOINTER *        ValuePtrPtr);
275 
276     #define N3SQLParamData(a,b) (*(T3SQLParamData)getOdbcFunction(ODBC3SQLParamData))(a,b)
277 
278     typedef SQLRETURN  (SQL_API  *T3SQLPutData) (       SQLHSTMT            StatementHandle,
279                                                     SQLPOINTER          DataPtr,
280                                                     SQLLEN              StrLen_or_Ind);
281 
282     #define N3SQLPutData(a,b,c) (*(T3SQLPutData)getOdbcFunction(ODBC3SQLPutData))(a,b,c)
283 
284     // Retrieving results and information about results
285     typedef SQLRETURN  (SQL_API  *T3SQLRowCount) (  SQLHSTMT            StatementHandle,
286                                                     SQLLEN *            RowCountPtr);
287 
288     #define N3SQLRowCount(a,b) (*(T3SQLRowCount)getOdbcFunction(ODBC3SQLRowCount))(a,b)
289 
290     typedef SQLRETURN  (SQL_API  *T3SQLNumResultCols) (SQLHSTMT         StatementHandle,
291                                                     SQLSMALLINT *       ColumnCountPtr);
292 
293     #define N3SQLNumResultCols(a,b) (*(T3SQLNumResultCols)getOdbcFunction(ODBC3SQLNumResultCols))(a,b)
294 
295     typedef SQLRETURN  (SQL_API  *T3SQLDescribeCol) (   SQLHSTMT            StatementHandle,
296                                                     SQLUSMALLINT        ColumnNumber,
297                                                     SQLCHAR *           ColumnName,
298                                                     SQLSMALLINT         BufferLength,
299                                                     SQLSMALLINT *       NameLengthPtr,
300                                                     SQLSMALLINT *       DataTypePtr,
301                                                     SQLULEN *           ColumnSizePtr,
302                                                     SQLSMALLINT *       DecimalDigitsPtr,
303                                                     SQLSMALLINT *       NullablePtr);
304 
305     #define N3SQLDescribeCol(a,b,c,d,e,f,g,h,i) (*(T3SQLDescribeCol)getOdbcFunction(ODBC3SQLDescribeCol))(a,b,c,d,e,f,g,h,i)
306 
307     typedef SQLRETURN  (SQL_API  *T3SQLColAttribute) (SQLHSTMT          StatementHandle,
308                                                     SQLUSMALLINT        ColumnNumber,
309                                                     SQLUSMALLINT        FieldIdentifier,
310                                                     SQLPOINTER          CharacterAttributePtr,
311                                                     SQLSMALLINT         BufferLength,
312                                                     SQLSMALLINT *       StringLengthPtr,
313                                                     SQLLEN *            NumericAttributePtr);
314 
315     #define N3SQLColAttribute(a,b,c,d,e,f,g) (*(T3SQLColAttribute)getOdbcFunction(ODBC3SQLColAttribute))(a,b,c,d,e,f,g)
316 
317     typedef SQLRETURN  (SQL_API  *T3SQLBindCol) (       SQLHSTMT            StatementHandle,
318                                                     SQLUSMALLINT        ColumnNumber,
319                                                     SQLSMALLINT         TargetType,
320                                                     SQLPOINTER          TargetValuePtr,
321                                                     SQLLEN              BufferLength,
322                                                     SQLLEN *            StrLen_or_IndPtr);
323 
324     #define N3SQLBindCol(a,b,c,d,e,f) (*(T3SQLBindCol)getOdbcFunction(ODBC3SQLBindCol))(a,b,c,d,e,f)
325 
326     typedef SQLRETURN  (SQL_API  *T3SQLFetch) (     SQLHSTMT            StatementHandle);
327 
328     #define N3SQLFetch(a) (*(T3SQLFetch)getOdbcFunction(ODBC3SQLFetch))(a)
329 
330     typedef SQLRETURN  (SQL_API  *T3SQLFetchScroll) (   SQLHSTMT            StatementHandle,
331                                                     SQLSMALLINT         FetchOrientation,
332                                                     SQLLEN              FetchOffset);
333 
334     #define N3SQLFetchScroll(a,b,c) (*(T3SQLFetchScroll)getOdbcFunction(ODBC3SQLFetchScroll))(a,b,c)
335 
336     typedef SQLRETURN  (SQL_API  *T3SQLGetData) (       SQLHSTMT            StatementHandle,
337                                                     SQLUSMALLINT        ColumnNumber,
338                                                     SQLSMALLINT         TargetType,
339                                                     SQLPOINTER          TargetValuePtr,
340                                                     SQLLEN              BufferLength,
341                                                     SQLLEN *            StrLen_or_IndPtr);
342 
343     #define N3SQLGetData(a,b,c,d,e,f) (*(T3SQLGetData)getOdbcFunction(ODBC3SQLGetData))(a,b,c,d,e,f)
344 
345     typedef SQLRETURN  (SQL_API  *T3SQLSetPos) (        SQLHSTMT            StatementHandle,
346                                                     SQLSETPOSIROW       RowNumber,
347                                                     SQLUSMALLINT        Operation,
348                                                     SQLUSMALLINT        LockType);
349 
350     #define N3SQLSetPos(a,b,c,d) (*(T3SQLSetPos)getOdbcFunction(ODBC3SQLSetPos))(a,b,c,d)
351 
352     typedef SQLRETURN  (SQL_API  *T3SQLBulkOperations) (    SQLHSTMT        StatementHandle,
353                                                         SQLSMALLINT Operation);
354 
355     #define N3SQLBulkOperations(a,b) (*(T3SQLBulkOperations)getOdbcFunction(ODBC3SQLBulkOperations))(a,b)
356 
357     typedef SQLRETURN  (SQL_API  *T3SQLMoreResults) (   SQLHSTMT            StatementHandle);
358 
359     #define N3SQLMoreResults(a) (*(T3SQLMoreResults)getOdbcFunction(ODBC3SQLMoreResults))(a)
360 
361     /*typedef SQLRETURN  (SQL_API  *T3SQLGetDiagField) (SQLSMALLINT         HandleType,
362                                                     SQLHANDLE           Handle,
363                                                     SQLSMALLINT         RecNumber,
364                                                     SQLSMALLINT         DiagIdentifier,
365                                                     SQLPOINTER          DiagInfoPtr,
366                                                     SQLSMALLINT         BufferLength,
367                                                     SQLSMALLINT *       StringLengthPtr);
368 
369     #define N3SQLGetDiagField(a,b,c,d,e,f,g) (*(T3SQLGetDiagField)getOdbcFunction(ODBC3SQLGetDiagField))(a,b,c,d,e,f,g)*/
370 
371     typedef SQLRETURN  (SQL_API  *T3SQLGetDiagRec) (    SQLSMALLINT         HandleType,
372                                                     SQLHANDLE           Handle,
373                                                     SQLSMALLINT         RecNumber,
374                                                     SQLCHAR *           Sqlstate,
375                                                     SQLINTEGER *        NativeErrorPtr,
376                                                     SQLCHAR *           MessageText,
377                                                     SQLSMALLINT         BufferLength,
378                                                     SQLSMALLINT *       TextLengthPtr);
379 
380 
381     #define N3SQLGetDiagRec(a,b,c,d,e,f,g,h) (*(T3SQLGetDiagRec)getOdbcFunction(ODBC3SQLGetDiagRec))(a,b,c,d,e,f,g,h)
382 
383     // Obtaining information about the data source's system tables (catalog functions)
384     typedef SQLRETURN  (SQL_API  *T3SQLColumnPrivileges) (SQLHSTMT      StatementHandle,
385                                                     SQLCHAR *           CatalogName,
386                                                     SQLSMALLINT         NameLength1,
387                                                     SQLCHAR *           SchemaName,
388                                                     SQLSMALLINT         NameLength2,
389                                                     SQLCHAR *           TableName,
390                                                     SQLSMALLINT         NameLength3,
391                                                     SQLCHAR *           ColumnName,
392                                                     SQLSMALLINT         NameLength4);
393 
394     #define N3SQLColumnPrivileges(a,b,c,d,e,f,g,h,i) (*(T3SQLColumnPrivileges)getOdbcFunction(ODBC3SQLColumnPrivileges))(a,b,c,d,e,f,g,h,i)
395 
396     typedef SQLRETURN  (SQL_API  *T3SQLColumns) (       SQLHSTMT            StatementHandle,
397                                                     SQLCHAR *           CatalogName,
398                                                     SQLSMALLINT         NameLength1,
399                                                     SQLCHAR *           SchemaName,
400                                                     SQLSMALLINT         NameLength2,
401                                                     SQLCHAR *           TableName,
402                                                     SQLSMALLINT         NameLength3,
403                                                     SQLCHAR *           ColumnName,
404                                                     SQLSMALLINT         NameLength4);
405 
406     #define N3SQLColumns(a,b,c,d,e,f,g,h,i) (*(T3SQLColumns)getOdbcFunction(ODBC3SQLColumns))(a,b,c,d,e,f,g,h,i)
407 
408     typedef SQLRETURN  (SQL_API  *T3SQLForeignKeys) (   SQLHSTMT            StatementHandle,
409                                                     SQLCHAR *           PKCatalogName,
410                                                     SQLSMALLINT         NameLength1,
411                                                     SQLCHAR *           PKSchemaName,
412                                                     SQLSMALLINT         NameLength2,
413                                                     SQLCHAR *           PKTableName,
414                                                     SQLSMALLINT         NameLength3,
415                                                     SQLCHAR *           FKCatalogName,
416                                                     SQLSMALLINT         NameLength4,
417                                                     SQLCHAR *           FKSchemaName,
418                                                     SQLSMALLINT         NameLength5,
419                                                     SQLCHAR *           FKTableName,
420                                                     SQLSMALLINT         NameLength6);
421 
422     #define N3SQLForeignKeys(a,b,c,d,e,f,g,h,i,j,k,l,m) (*(T3SQLForeignKeys)getOdbcFunction(ODBC3SQLForeignKeys))(a,b,c,d,e,f,g,h,i,j,k,l,m)
423 
424     typedef SQLRETURN  (SQL_API  *T3SQLPrimaryKeys) (   SQLHSTMT            StatementHandle,
425                                                     SQLCHAR *           CatalogName,
426                                                     SQLSMALLINT         NameLength1,
427                                                     SQLCHAR *           SchemaName,
428                                                     SQLSMALLINT         NameLength2,
429                                                     SQLCHAR *           TableName,
430                                                     SQLSMALLINT         NameLength3);
431 
432     #define N3SQLPrimaryKeys(a,b,c,d,e,f,g) (*(T3SQLPrimaryKeys)getOdbcFunction(ODBC3SQLPrimaryKeys))(a,b,c,d,e,f,g)
433 
434     typedef SQLRETURN  (SQL_API  *T3SQLProcedureColumns) (SQLHSTMT      StatementHandle,
435                                                     SQLCHAR *           CatalogName,
436                                                     SQLSMALLINT         NameLength1,
437                                                     SQLCHAR *           SchemaName,
438                                                     SQLSMALLINT         NameLength2,
439                                                     SQLCHAR *           ProcName,
440                                                     SQLSMALLINT         NameLength3,
441                                                     SQLCHAR *           ColumnName,
442                                                     SQLSMALLINT         NameLength4);
443 
444     #define N3SQLProcedureColumns(a,b,c,d,e,f,g,h,i) (*(T3SQLProcedureColumns)getOdbcFunction(ODBC3SQLProcedureColumns))(a,b,c,d,e,f,g,h,i)
445 
446     typedef SQLRETURN  (SQL_API  *T3SQLProcedures) (    SQLHSTMT            StatementHandle,
447                                                     SQLCHAR *           CatalogName,
448                                                     SQLSMALLINT         NameLength1,
449                                                     SQLCHAR *           SchemaName,
450                                                     SQLSMALLINT         NameLength2,
451                                                     SQLCHAR *           ProcName,
452                                                     SQLSMALLINT         NameLength3);
453 
454     #define N3SQLProcedures(a,b,c,d,e,f,g) (*(T3SQLProcedures)getOdbcFunction(ODBC3SQLProcedures))(a,b,c,d,e,f,g)
455 
456     typedef SQLRETURN  (SQL_API  *T3SQLSpecialColumns) (SQLHSTMT            StatementHandle,
457                                                     SQLUSMALLINT        IdentifierType,
458                                                     SQLCHAR *           CatalogName,
459                                                     SQLSMALLINT         NameLength1,
460                                                     SQLCHAR *           SchemaName,
461                                                     SQLSMALLINT         NameLength2,
462                                                     SQLCHAR *           TableName,
463                                                     SQLSMALLINT         NameLength3,
464                                                     SQLUSMALLINT        Scope,
465                                                     SQLUSMALLINT        Nullable);
466 
467     #define N3SQLSpecialColumns(a,b,c,d,e,f,g,h,i,j) (*(T3SQLSpecialColumns)getOdbcFunction(ODBC3SQLSpecialColumns))(a,b,c,d,e,f,g,h,i,j)
468 
469     typedef SQLRETURN  (SQL_API  *T3SQLStatistics) (    SQLHSTMT            StatementHandle,
470                                                     SQLCHAR *           CatalogName,
471                                                     SQLSMALLINT         NameLength1,
472                                                     SQLCHAR *           SchemaName,
473                                                     SQLSMALLINT         NameLength2,
474                                                     SQLCHAR *           TableName,
475                                                     SQLSMALLINT         NameLength3,
476                                                     SQLUSMALLINT        Unique,
477                                                     SQLUSMALLINT        Reserved);
478 
479     #define N3SQLStatistics(a,b,c,d,e,f,g,h,i) (*(T3SQLStatistics)getOdbcFunction(ODBC3SQLStatistics))(a,b,c,d,e,f,g,h,i)
480 
481     typedef SQLRETURN  (SQL_API  *T3SQLTablePrivileges) (SQLHSTMT           StatementHandle,
482                                                     SQLCHAR *           CatalogName,
483                                                     SQLSMALLINT         NameLength1,
484                                                     SQLCHAR *           SchemaName,
485                                                     SQLSMALLINT         NameLength2,
486                                                     SQLCHAR *           TableName,
487                                                     SQLSMALLINT         NameLength3);
488 
489     #define N3SQLTablePrivileges(a,b,c,d,e,f,g) (*(T3SQLTablePrivileges)getOdbcFunction(ODBC3SQLTablePrivileges))(a,b,c,d,e,f,g)
490 
491     typedef SQLRETURN  (SQL_API  *T3SQLTables) (    SQLHSTMT                StatementHandle,
492                                                     SQLCHAR *               CatalogName,
493                                                     SQLSMALLINT             NameLength1,
494                                                     SQLCHAR *               SchemaName,
495                                                     SQLSMALLINT             NameLength2,
496                                                     SQLCHAR *               TableName,
497                                                     SQLSMALLINT             NameLength3,
498                                                     SQLCHAR *               TableType,
499                                                     SQLSMALLINT             NameLength4);
500 
501     #define N3SQLTables(a,b,c,d,e,f,g,h,i) (*(T3SQLTables)getOdbcFunction(ODBC3SQLTables))(a,b,c,d,e,f,g,h,i)
502 
503     // Terminating a statement
504     typedef SQLRETURN  (SQL_API  *T3SQLFreeStmt) (  SQLHSTMT                StatementHandle,
505                                                     SQLUSMALLINT            Option);
506 
507     #define N3SQLFreeStmt(a,b) (*(T3SQLFreeStmt)getOdbcFunction(ODBC3SQLFreeStmt))(a,b)
508 
509     typedef SQLRETURN  (SQL_API  *T3SQLCloseCursor) (SQLHSTMT           StatementHandle);
510 
511     #define N3SQLCloseCursor(a) (*(T3SQLCloseCursor)getOdbcFunction(ODBC3SQLCloseCursor))(a)
512 
513     typedef SQLRETURN  (SQL_API  *T3SQLCancel) (    SQLHSTMT                StatementHandle);
514 
515     #define N3SQLCancel(a) (*(T3SQLCancel)getOdbcFunction(ODBC3SQLCancel))(a)
516 
517     typedef SQLRETURN  (SQL_API  *T3SQLEndTran) (   SQLSMALLINT             HandleType,
518                                                     SQLHANDLE               Handle,
519                                                     SQLSMALLINT             CompletionType);
520 
521     #define N3SQLEndTran(a,b,c) (*(T3SQLEndTran)getOdbcFunction(ODBC3SQLEndTran))(a,b,c)
522 
523     // Terminating a connection
524     typedef SQLRETURN  (SQL_API  *T3SQLDisconnect) (SQLHDBC ConnectionHandle);
525 
526     #define N3SQLDisconnect(a) (*(T3SQLDisconnect)getOdbcFunction(ODBC3SQLDisconnect))(a)
527 
528     typedef SQLRETURN  (SQL_API  *T3SQLFreeHandle) (SQLSMALLINT             HandleType,
529                                                     SQLHANDLE               Handle);
530 
531     #define N3SQLFreeHandle(a,b) (*(T3SQLFreeHandle)getOdbcFunction(ODBC3SQLFreeHandle))(a,b)
532 
533     typedef SQLRETURN  (SQL_API  *T3SQLGetCursorName) ( SQLHSTMT            StatementHandle,
534                                                         SQLCHAR *           CursorName,
535                                                         SQLSMALLINT         BufferLength,
536                                                         SQLSMALLINT*        NameLength2);
537 
538     #define N3SQLGetCursorName(a,b,c,d) (*(T3SQLGetCursorName)getOdbcFunction(ODBC3SQLGetCursorName))(a,b,c,d)
539 
540     typedef SQLRETURN  (SQL_API  *T3SQLNativeSql) ( SQLHSTMT                ConnectionHandle,
541                                                     SQLCHAR *               InStatementText,
542                                                     SQLINTEGER              TextLength1,
543                                                     SQLCHAR *               OutStatementText,
544                                                     SQLINTEGER              BufferLength,
545                                                     SQLINTEGER *            TextLength2Ptr);
546 
547     #define N3SQLNativeSql(a,b,c,d,e,f) (*(T3SQLNativeSql)getOdbcFunction(ODBC3SQLNativeSql))(a,b,c,d,e,f)
548 }
549 
550 #endif // _CONNECTIVITY_ODBC_OFUNCTIONS_HXX_
551 
552 
553