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