xref: /AOO41X/main/unixODBC/inc/sql.h (revision acaca3423cb54ec1f8b99ebd1a99aa0abb0b33f9)
1 /*
2  *  sql.h
3  *
4  *  $Id: sql.h,v 1.11 2009/09/09 20:06:24 source Exp $
5  *
6  *  ODBC defines
7  *
8  *  The iODBC driver manager.
9  *
10  *  Copyright (C) 1995 by Ke Jin <kejin@empress.com>
11  *  Copyright (C) 1996-2009 by OpenLink Software <iodbc@openlinksw.com>
12  *  All Rights Reserved.
13  *
14  *  This software is released under the terms of either of the following
15  *  licenses:
16  *
17  *      - GNU Library General Public License (see LICENSE.LGPL)
18  *      - The BSD License (see LICENSE.BSD).
19  *
20  *  Note that the only valid version of the LGPL license as far as this
21  *  project is concerned is the original GNU Library General Public License
22  *  Version 2, dated June 1991.
23  *
24  *  While not mandated by the BSD license, any patches you make to the
25  *  iODBC source code may be contributed back into the iODBC project
26  *  at your discretion. Contributions will benefit the Open Source and
27  *  Data Access community as a whole. Submissions may be made at:
28  *
29  *      http://www.iodbc.org
30  *
31  *
32  *  GNU Library Generic Public License Version 2
33  *  ============================================
34  *  This library is free software; you can redistribute it and/or
35  *  modify it under the terms of the GNU Library General Public
36  *  License as published by the Free Software Foundation; only
37  *  Version 2 of the License dated June 1991.
38  *
39  *  This library is distributed in the hope that it will be useful,
40  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
41  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
42  *  Library General Public License for more details.
43  *
44  *  You should have received a copy of the GNU Library General Public
45  *  License along with this library; if not, write to the Free
46  *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
47  *
48  *
49  *  The BSD License
50  *  ===============
51  *  Redistribution and use in source and binary forms, with or without
52  *  modification, are permitted provided that the following conditions
53  *  are met:
54  *
55  *  1. Redistributions of source code must retain the above copyright
56  *     notice, this list of conditions and the following disclaimer.
57  *  2. Redistributions in binary form must reproduce the above copyright
58  *     notice, this list of conditions and the following disclaimer in
59  *     the documentation and/or other materials provided with the
60  *     distribution.
61  *  3. Neither the name of OpenLink Software Inc. nor the names of its
62  *     contributors may be used to endorse or promote products derived
63  *     from this software without specific prior written permission.
64  *
65  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
66  *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
67  *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
68  *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL OPENLINK OR
69  *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
70  *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
71  *  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
72  *  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
73  *  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
74  *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
75  *  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
76  */
77 
78 #ifndef _SQL_H
79 #define _SQL_H
80 
81 /*
82  *  Set default specification to ODBC 3.51
83  */
84 #ifndef ODBCVER
85 #define ODBCVER     0x0351
86 #endif
87 
88 #ifndef _SQLTYPES_H
89 #include <odbc/sqltypes.h>
90 #endif
91 
92 #ifdef __cplusplus
93 extern "C" {
94 #endif
95 
96 /*
97  *  Useful Constants
98  */
99 #define SQL_MAX_MESSAGE_LENGTH          512
100 
101 
102 /*
103  *  Handle types
104  */
105 #if (ODBCVER >= 0x0300)
106 #define SQL_HANDLE_ENV              1
107 #define SQL_HANDLE_DBC              2
108 #define SQL_HANDLE_STMT             3
109 #define SQL_HANDLE_DESC             4
110 #endif  /* ODBCVER >= 0x0300 */
111 
112 
113 /*
114  *  Function return codes
115  */
116 #define SQL_SUCCESS             0
117 #define SQL_SUCCESS_WITH_INFO           1
118 #define SQL_STILL_EXECUTING         2
119 #define SQL_ERROR               (-1)
120 #define SQL_INVALID_HANDLE          (-2)
121 #define SQL_NEED_DATA               99
122 #if (ODBCVER >= 0x0300)
123 #define SQL_NO_DATA             100
124 #endif  /* ODBCVER >= 0x0300 */
125 
126 
127 /*
128  *  Test for SQL_SUCCESS or SQL_SUCCESS_WITH_INFO
129  */
130 #define SQL_SUCCEEDED(rc)           (((rc) & (~1)) == 0)
131 
132 
133 /*
134  *  Special length values
135  */
136 #define SQL_NULL_DATA               (-1)
137 #define SQL_DATA_AT_EXEC            (-2)
138 
139 
140 /*
141  *  Flags for null-terminated strings
142  */
143 #define SQL_NTS                 (-3)
144 #define SQL_NTSL                (-3L)
145 
146 
147 /*
148  *  Standard SQL datatypes, using ANSI type numbering
149  */
150 #define SQL_UNKNOWN_TYPE            0
151 #define SQL_CHAR                1
152 #define SQL_NUMERIC             2
153 #define SQL_DECIMAL             3
154 #define SQL_INTEGER             4
155 #define SQL_SMALLINT                5
156 #define SQL_FLOAT               6
157 #define SQL_REAL                7
158 #define SQL_DOUBLE              8
159 #if (ODBCVER >= 0x0300)
160 #define SQL_DATETIME                9
161 #endif  /* ODBCVER >= 0x0300 */
162 #define SQL_VARCHAR             12
163 
164 
165 /*
166  *  SQLGetTypeInfo request for all data types
167  */
168 #define SQL_ALL_TYPES               0
169 
170 
171 /*
172  *  Statement attribute values for date/time data types
173  */
174 #if (ODBCVER >= 0x0300)
175 #define SQL_TYPE_DATE               91
176 #define SQL_TYPE_TIME               92
177 #define SQL_TYPE_TIMESTAMP          93
178 #endif  /* ODBCVER >= 0x0300 */
179 
180 
181 /*
182  *  Date/Time length constants
183  */
184 #if (ODBCVER >= 0x0300)
185 #define SQL_DATE_LEN                10
186 #define SQL_TIME_LEN                8   /* add P+1 if prec >0 */
187 #define SQL_TIMESTAMP_LEN           19  /* add P+1 if prec >0 */
188 #endif  /* ODBCVER >= 0x0300 */
189 
190 
191 /*
192  *  NULL status constants
193  */
194 #define SQL_NO_NULLS                0
195 #define SQL_NULLABLE                1
196 #define SQL_NULLABLE_UNKNOWN            2
197 
198 
199 /*
200  *  NULL Handles
201  */
202 #define SQL_NULL_HENV               0
203 #define SQL_NULL_HDBC               0
204 #define SQL_NULL_HSTMT              0
205 #if (ODBCVER >= 0x0300)
206 #define SQL_NULL_HDESC              0
207 #endif  /* ODBCVER >= 0x0300 */
208 
209 
210 /*
211  *  NULL handle for parent argument to SQLAllocHandle when allocating
212  *  a SQLHENV
213  */
214 #if (ODBCVER >= 0x0300)
215 #define SQL_NULL_HANDLE             0L
216 #endif  /* ODBCVER >= 0x0300 */
217 
218 
219 /*
220  *  CLI option values
221  */
222 #if (ODBCVER >= 0x0300)
223 #define SQL_FALSE               0
224 #define SQL_TRUE                1
225 #endif  /* ODBCVER >= 0x0300 */
226 
227 
228 /*
229  *  Default conversion code for SQLBindCol(), SQLBindParam() and SQLGetData()
230  */
231 #if (ODBCVER >= 0x0300)
232 #define SQL_DEFAULT             99
233 #endif  /* ODBCVER >= 0x0300 */
234 
235 
236 /*
237  *  SQLDataSources/SQLFetchScroll - FetchOrientation
238  */
239 #define SQL_FETCH_NEXT              1
240 #define SQL_FETCH_FIRST             2
241 
242 
243 /*
244  *  SQLFetchScroll - FetchOrientation
245  */
246 #define SQL_FETCH_LAST              3
247 #define SQL_FETCH_PRIOR             4
248 #define SQL_FETCH_ABSOLUTE          5
249 #define SQL_FETCH_RELATIVE          6
250 
251 
252 /*
253  *  SQLFreeStmt
254  */
255 #define SQL_CLOSE               0
256 #define SQL_DROP                1
257 #define SQL_UNBIND              2
258 #define SQL_RESET_PARAMS            3
259 
260 
261 /*
262  *  SQLGetConnectAttr - connection attributes
263  */
264 #if (ODBCVER >= 0x0300)
265 #define SQL_ATTR_AUTO_IPD           10001
266 #define SQL_ATTR_METADATA_ID            10014
267 #endif  /* ODBCVER >= 0x0300 */
268 
269 
270 /*
271  *   SQLGetData() code indicating that the application row descriptor
272  *   specifies the data type
273  */
274 #if (ODBCVER >= 0x0300)
275 #define SQL_ARD_TYPE                (-99)
276 #endif  /* ODBCVER >= 0x0300 */
277 
278 
279 /*
280  *  SQLGetDescField - identifiers of fields in the SQL descriptor
281  */
282 #if (ODBCVER >= 0x0300)
283 #define SQL_DESC_COUNT              1001
284 #define SQL_DESC_TYPE               1002
285 #define SQL_DESC_LENGTH             1003
286 #define SQL_DESC_OCTET_LENGTH_PTR       1004
287 #define SQL_DESC_PRECISION          1005
288 #define SQL_DESC_SCALE              1006
289 #define SQL_DESC_DATETIME_INTERVAL_CODE     1007
290 #define SQL_DESC_NULLABLE           1008
291 #define SQL_DESC_INDICATOR_PTR          1009
292 #define SQL_DESC_DATA_PTR           1010
293 #define SQL_DESC_NAME               1011
294 #define SQL_DESC_UNNAMED            1012
295 #define SQL_DESC_OCTET_LENGTH           1013
296 #define SQL_DESC_ALLOC_TYPE         1099
297 #endif  /* ODBCVER >= 0x0300 */
298 
299 
300 /*
301  *  SQLGetDescField - SQL_DESC_ALLOC_TYPE
302  */
303 #if (ODBCVER >= 0x0300)
304 #define SQL_DESC_ALLOC_AUTO         1
305 #define SQL_DESC_ALLOC_USER         2
306 #endif  /* ODBCVER >= 0x0300 */
307 
308 
309 /*
310  *  SQLGetDescField - SQL_DESC_DATETIME_INTERVAL_CODE
311  */
312 #if (ODBCVER >= 0x0300)
313 #define SQL_CODE_DATE               1
314 #define SQL_CODE_TIME               2
315 #define SQL_CODE_TIMESTAMP          3
316 #endif  /* ODBCVER >= 0x0300 */
317 
318 
319 /*
320  *  SQLGetDescField - SQL_DESC_UNNAMED
321  */
322 #if (ODBCVER >= 0x0300)
323 #define SQL_NAMED               0
324 #define SQL_UNNAMED             1
325 #endif  /* ODBCVER >= 0x0300 */
326 
327 
328 /*
329  *  SQLGetDiagField - identifiers of fields in the diagnostics area
330  */
331 #if (ODBCVER >= 0x0300)
332 #define SQL_DIAG_RETURNCODE         1
333 #define SQL_DIAG_NUMBER             2
334 #define SQL_DIAG_ROW_COUNT          3
335 #define SQL_DIAG_SQLSTATE           4
336 #define SQL_DIAG_NATIVE             5
337 #define SQL_DIAG_MESSAGE_TEXT           6
338 #define SQL_DIAG_DYNAMIC_FUNCTION       7
339 #define SQL_DIAG_CLASS_ORIGIN           8
340 #define SQL_DIAG_SUBCLASS_ORIGIN        9
341 #define SQL_DIAG_CONNECTION_NAME        10
342 #define SQL_DIAG_SERVER_NAME            11
343 #define SQL_DIAG_DYNAMIC_FUNCTION_CODE      12
344 #endif  /* ODBCVER >= 0x0300 */
345 
346 
347 /*
348  *  SQLGetDiagField - SQL_DIAG_DYNAMIC_FUNCTION_CODE
349  */
350 #if (ODBCVER >= 0x0300)
351 #define SQL_DIAG_ALTER_DOMAIN           3
352 #define SQL_DIAG_ALTER_TABLE            4
353 #define SQL_DIAG_CALL               7
354 #define SQL_DIAG_CREATE_ASSERTION       6
355 #define SQL_DIAG_CREATE_CHARACTER_SET       8
356 #define SQL_DIAG_CREATE_COLLATION       10
357 #define SQL_DIAG_CREATE_DOMAIN          23
358 #define SQL_DIAG_CREATE_INDEX           (-1)
359 #define SQL_DIAG_CREATE_SCHEMA          64
360 #define SQL_DIAG_CREATE_TABLE           77
361 #define SQL_DIAG_CREATE_TRANSLATION     79
362 #define SQL_DIAG_CREATE_VIEW            84
363 #define SQL_DIAG_DELETE_WHERE           19
364 #define SQL_DIAG_DROP_ASSERTION         24
365 #define SQL_DIAG_DROP_CHARACTER_SET     25
366 #define SQL_DIAG_DROP_COLLATION         26
367 #define SQL_DIAG_DROP_DOMAIN            27
368 #define SQL_DIAG_DROP_INDEX         (-2)
369 #define SQL_DIAG_DROP_SCHEMA            31
370 #define SQL_DIAG_DROP_TABLE         32
371 #define SQL_DIAG_DROP_TRANSLATION       33
372 #define SQL_DIAG_DROP_VIEW          36
373 #define SQL_DIAG_DYNAMIC_DELETE_CURSOR      38
374 #define SQL_DIAG_DYNAMIC_UPDATE_CURSOR      81
375 #define SQL_DIAG_GRANT              48
376 #define SQL_DIAG_INSERT             50
377 #define SQL_DIAG_REVOKE             59
378 #define SQL_DIAG_SELECT_CURSOR          85
379 #define SQL_DIAG_UNKNOWN_STATEMENT      0
380 #define SQL_DIAG_UPDATE_WHERE           82
381 #endif  /* ODBCVER >= 0x0300 */
382 
383 
384 /*
385  *  SQLGetEnvAttr - environment attribute
386  */
387 #if (ODBCVER >= 0x0300)
388 #define SQL_ATTR_OUTPUT_NTS         10001
389 #endif  /* ODBCVER >= 0x0300 */
390 
391 
392 /*
393  *  SQLGetFunctions
394  */
395 #define SQL_API_SQLALLOCCONNECT         1
396 #define SQL_API_SQLALLOCENV         2
397 #if (ODBCVER >= 0x0300)
398 #define SQL_API_SQLALLOCHANDLE          1001
399 #endif  /* ODBCVER >= 0x0300 */
400 #define SQL_API_SQLALLOCSTMT            3
401 #define SQL_API_SQLBINDCOL          4
402 #if (ODBCVER >= 0x0300)
403 #define SQL_API_SQLBINDPARAM            1002
404 #endif  /* ODBCVER >= 0x0300 */
405 #define SQL_API_SQLCANCEL           5
406 #if (ODBCVER >= 0x0300)
407 #define SQL_API_SQLCLOSECURSOR          1003
408 #define SQL_API_SQLCOLATTRIBUTE         6
409 #endif  /* ODBCVER >= 0x0300 */
410 #define SQL_API_SQLCOLUMNS          40
411 #define SQL_API_SQLCONNECT          7
412 #if (ODBCVER >= 0x0300)
413 #define SQL_API_SQLCOPYDESC         1004
414 #endif  /* ODBCVER >= 0x0300 */
415 #define SQL_API_SQLDATASOURCES          57
416 #define SQL_API_SQLDESCRIBECOL          8
417 #define SQL_API_SQLDISCONNECT           9
418 #if (ODBCVER >= 0x0300)
419 #define SQL_API_SQLENDTRAN          1005
420 #endif  /* ODBCVER >= 0x0300 */
421 #define SQL_API_SQLERROR            10
422 #define SQL_API_SQLEXECDIRECT           11
423 #define SQL_API_SQLEXECUTE          12
424 #define SQL_API_SQLFETCH            13
425 #if (ODBCVER >= 0x0300)
426 #define SQL_API_SQLFETCHSCROLL          1021
427 #endif  /* ODBCVER >= 0x0300 */
428 #define SQL_API_SQLFREECONNECT          14
429 #define SQL_API_SQLFREEENV          15
430 #if (ODBCVER >= 0x0300)
431 #define SQL_API_SQLFREEHANDLE           1006
432 #endif  /* ODBCVER >= 0x0300 */
433 #define SQL_API_SQLFREESTMT         16
434 #if (ODBCVER >= 0x0300)
435 #define SQL_API_SQLGETCONNECTATTR       1007
436 #endif  /* ODBCVER >= 0x0300 */
437 #define SQL_API_SQLGETCONNECTOPTION     42
438 #define SQL_API_SQLGETCURSORNAME        17
439 #define SQL_API_SQLGETDATA          43
440 #if (ODBCVER >= 0x0300)
441 #define SQL_API_SQLGETDESCFIELD         1008
442 #define SQL_API_SQLGETDESCREC           1009
443 #define SQL_API_SQLGETDIAGFIELD         1010
444 #define SQL_API_SQLGETDIAGREC           1011
445 #define SQL_API_SQLGETENVATTR           1012
446 #endif  /* ODBCVER >= 0x0300 */
447 #define SQL_API_SQLGETFUNCTIONS         44
448 #define SQL_API_SQLGETINFO          45
449 #if (ODBCVER >= 0x0300)
450 #define SQL_API_SQLGETSTMTATTR          1014
451 #endif  /* ODBCVER >= 0x0300 */
452 #define SQL_API_SQLGETSTMTOPTION        46
453 #define SQL_API_SQLGETTYPEINFO          47
454 #define SQL_API_SQLNUMRESULTCOLS        18
455 #define SQL_API_SQLPARAMDATA            48
456 #define SQL_API_SQLPREPARE          19
457 #define SQL_API_SQLPUTDATA          49
458 #define SQL_API_SQLROWCOUNT         20
459 #if (ODBCVER >= 0x0300)
460 #define SQL_API_SQLSETCONNECTATTR       1016
461 #endif  /* ODBCVER >= 0x0300 */
462 #define SQL_API_SQLSETCONNECTOPTION     50
463 #define SQL_API_SQLSETCURSORNAME        21
464 #if (ODBCVER >= 0x0300)
465 #define SQL_API_SQLSETDESCFIELD         1017
466 #define SQL_API_SQLSETDESCREC           1018
467 #define SQL_API_SQLSETENVATTR           1019
468 #endif  /* ODBCVER >= 0x0300 */
469 #define SQL_API_SQLSETPARAM         22
470 #if (ODBCVER >= 0x0300)
471 #define SQL_API_SQLSETSTMTATTR          1020
472 #endif  /* ODBCVER >= 0x0300 */
473 #define SQL_API_SQLSETSTMTOPTION        51
474 #define SQL_API_SQLSPECIALCOLUMNS       52
475 #define SQL_API_SQLSTATISTICS           53
476 #define SQL_API_SQLTABLES           54
477 #define SQL_API_SQLTRANSACT         23
478 
479 
480 /*
481  *  SQLGetInfo
482  */
483 #if (ODBCVER >= 0x0300)
484 #define SQL_MAX_DRIVER_CONNECTIONS      0
485 #define SQL_MAXIMUM_DRIVER_CONNECTIONS      SQL_MAX_DRIVER_CONNECTIONS
486 #define SQL_MAX_CONCURRENT_ACTIVITIES       1
487 #define SQL_MAXIMUM_CONCURRENT_ACTIVITIES   SQL_MAX_CONCURRENT_ACTIVITIES
488 #endif  /* ODBCVER >= 0x0300 */
489 #define SQL_DATA_SOURCE_NAME            2
490 #define SQL_FETCH_DIRECTION         8
491 #define SQL_SERVER_NAME             13
492 #define SQL_SEARCH_PATTERN_ESCAPE       14
493 #define SQL_DBMS_NAME               17
494 #define SQL_DBMS_VER                18
495 #define SQL_ACCESSIBLE_TABLES           19
496 #define SQL_ACCESSIBLE_PROCEDURES       20
497 #define SQL_CURSOR_COMMIT_BEHAVIOR      23
498 #define SQL_DATA_SOURCE_READ_ONLY       25
499 #define SQL_DEFAULT_TXN_ISOLATION       26
500 #define SQL_IDENTIFIER_CASE         28
501 #define SQL_IDENTIFIER_QUOTE_CHAR       29
502 #define SQL_MAX_COLUMN_NAME_LEN         30
503 #define SQL_MAXIMUM_COLUMN_NAME_LENGTH      SQL_MAX_COLUMN_NAME_LEN
504 #define SQL_MAX_CURSOR_NAME_LEN         31
505 #define SQL_MAXIMUM_CURSOR_NAME_LENGTH      SQL_MAX_CURSOR_NAME_LEN
506 #define SQL_MAX_SCHEMA_NAME_LEN         32
507 #define SQL_MAXIMUM_SCHEMA_NAME_LENGTH      SQL_MAX_SCHEMA_NAME_LEN
508 #define SQL_MAX_CATALOG_NAME_LEN        34
509 #define SQL_MAXIMUM_CATALOG_NAME_LENGTH     SQL_MAX_CATALOG_NAME_LEN
510 #define SQL_MAX_TABLE_NAME_LEN          35
511 #define SQL_SCROLL_CONCURRENCY          43
512 #define SQL_TXN_CAPABLE             46
513 #define SQL_TRANSACTION_CAPABLE         SQL_TXN_CAPABLE
514 #define SQL_USER_NAME               47
515 #define SQL_TXN_ISOLATION_OPTION        72
516 #define SQL_TRANSACTION_ISOLATION_OPTION    SQL_TXN_ISOLATION_OPTION
517 #define SQL_INTEGRITY               73
518 #define SQL_GETDATA_EXTENSIONS          81
519 #define SQL_NULL_COLLATION          85
520 #define SQL_ALTER_TABLE             86
521 #define SQL_ORDER_BY_COLUMNS_IN_SELECT      90
522 #define SQL_SPECIAL_CHARACTERS          94
523 #define SQL_MAX_COLUMNS_IN_GROUP_BY     97
524 #define SQL_MAXIMUM_COLUMNS_IN_GROUP_BY     SQL_MAX_COLUMNS_IN_GROUP_BY
525 #define SQL_MAX_COLUMNS_IN_INDEX        98
526 #define SQL_MAXIMUM_COLUMNS_IN_INDEX        SQL_MAX_COLUMNS_IN_INDEX
527 #define SQL_MAX_COLUMNS_IN_ORDER_BY     99
528 #define SQL_MAXIMUM_COLUMNS_IN_ORDER_BY     SQL_MAX_COLUMNS_IN_ORDER_BY
529 #define SQL_MAX_COLUMNS_IN_SELECT       100
530 #define SQL_MAXIMUM_COLUMNS_IN_SELECT       SQL_MAX_COLUMNS_IN_SELECT
531 #define SQL_MAX_COLUMNS_IN_TABLE        101
532 #define SQL_MAX_INDEX_SIZE          102
533 #define SQL_MAXIMUM_INDEX_SIZE          SQL_MAX_INDEX_SIZE
534 #define SQL_MAX_ROW_SIZE            104
535 #define SQL_MAXIMUM_ROW_SIZE            SQL_MAX_ROW_SIZE
536 #define SQL_MAX_STATEMENT_LEN           105
537 #define SQL_MAXIMUM_STATEMENT_LENGTH        SQL_MAX_STATEMENT_LEN
538 #define SQL_MAX_TABLES_IN_SELECT        106
539 #define SQL_MAXIMUM_TABLES_IN_SELECT        SQL_MAX_TABLES_IN_SELECT
540 #define SQL_MAX_USER_NAME_LEN           107
541 #define SQL_MAXIMUM_USER_NAME_LENGTH        SQL_MAX_USER_NAME_LEN
542 #if (ODBCVER >= 0x0300)
543 #define SQL_OJ_CAPABILITIES         115
544 #define SQL_OUTER_JOIN_CAPABILITIES     SQL_OJ_CAPABILITIES
545 #endif  /* ODBCVER >= 0x0300 */
546 
547 #if (ODBCVER >= 0x0300)
548 #define SQL_XOPEN_CLI_YEAR          10000
549 #define SQL_CURSOR_SENSITIVITY          10001
550 #define SQL_DESCRIBE_PARAMETER          10002
551 #define SQL_CATALOG_NAME            10003
552 #define SQL_COLLATION_SEQ           10004
553 #define SQL_MAX_IDENTIFIER_LEN          10005
554 #define SQL_MAXIMUM_IDENTIFIER_LENGTH       SQL_MAX_IDENTIFIER_LEN
555 #endif  /* ODBCVER >= 0x0300 */
556 
557 
558 /*
559  *  SQLGetInfo - SQL_ALTER_TABLE
560  */
561 #if (ODBCVER >= 0x0200)
562 #define SQL_AT_ADD_COLUMN           0x00000001L
563 #define SQL_AT_DROP_COLUMN          0x00000002L
564 #endif  /* ODBCVER >= 0x0300 */
565 
566 #if (ODBCVER >= 0x0300)
567 #define SQL_AT_ADD_CONSTRAINT           0x00000008L
568 /*
569  * The following bitmasks are ODBC extensions and defined in sqlext.h:
570  *
571  * #define SQL_AT_COLUMN_SINGLE             0x00000020L
572  * #define SQL_AT_ADD_COLUMN_DEFAULT            0x00000040L
573  * #define SQL_AT_ADD_COLUMN_COLLATION          0x00000080L
574  * #define SQL_AT_SET_COLUMN_DEFAULT            0x00000100L
575  * #define SQL_AT_DROP_COLUMN_DEFAULT           0x00000200L
576  * #define SQL_AT_DROP_COLUMN_CASCADE           0x00000400L
577  * #define SQL_AT_DROP_COLUMN_RESTRICT          0x00000800L
578  * #define SQL_AT_ADD_TABLE_CONSTRAINT          0x00001000L
579  * #define SQL_AT_DROP_TABLE_CONSTRAINT_CASCADE     0x00002000L
580  * #define SQL_AT_DROP_TABLE_CONSTRAINT_RESTRICT    0x00004000L
581  * #define SQL_AT_CONSTRAINT_NAME_DEFINITION        0x00008000L
582  * #define SQL_AT_CONSTRAINT_INITIALLY_DEFERRED     0x00010000L
583  * #define SQL_AT_CONSTRAINT_INITIALLY_IMMEDIATE    0x00020000L
584  * #define SQL_AT_CONSTRAINT_DEFERRABLE         0x00040000L
585  * #define SQL_AT_CONSTRAINT_NON_DEFERRABLE     0x00080000L
586  */
587 #endif  /* ODBCVER >= 0x0300 */
588 
589 
590 /*
591  *  SQLGetInfo - SQL_ASYNC_MODE
592  */
593 #if (ODBCVER >= 0x0300)
594 #define SQL_AM_NONE             0
595 #define SQL_AM_CONNECTION           1
596 #define SQL_AM_STATEMENT            2
597 #endif  /* ODBCVER >= 0x0300 */
598 
599 
600 /*
601  *  SQLGetInfo - SQL_CURSOR_COMMIT_BEHAVIOR
602  */
603 #define SQL_CB_DELETE               0
604 #define SQL_CB_CLOSE                1
605 #define SQL_CB_PRESERVE             2
606 
607 
608 /*
609  *  SQLGetInfo - SQL_FETCH_DIRECTION
610  */
611 #define SQL_FD_FETCH_NEXT           0x00000001L
612 #define SQL_FD_FETCH_FIRST          0x00000002L
613 #define SQL_FD_FETCH_LAST           0x00000004L
614 #define SQL_FD_FETCH_PRIOR          0x00000008L
615 #define SQL_FD_FETCH_ABSOLUTE           0x00000010L
616 #define SQL_FD_FETCH_RELATIVE           0x00000020L
617 
618 
619 /*
620  *  SQLGetInfo - SQL_GETDATA_EXTENSIONS
621  */
622 #define SQL_GD_ANY_COLUMN           0x00000001L
623 #define SQL_GD_ANY_ORDER            0x00000002L
624 
625 
626 /*
627  *  SQLGetInfo - SQL_IDENTIFIER_CASE
628  */
629 #define SQL_IC_UPPER                1
630 #define SQL_IC_LOWER                2
631 #define SQL_IC_SENSITIVE            3
632 #define SQL_IC_MIXED                4
633 
634 
635 /*
636  *  SQLGetInfo - SQL_NULL_COLLATION
637  */
638 #define SQL_NC_HIGH             0
639 #define SQL_NC_LOW              1
640 
641 
642 /*
643  *  SQLGetInfo - SQL_OJ_CAPABILITIES
644  */
645 #if (ODBCVER >= 0x0201)
646 #define SQL_OJ_LEFT             0x00000001L
647 #define SQL_OJ_RIGHT                0x00000002L
648 #define SQL_OJ_FULL             0x00000004L
649 #define SQL_OJ_NESTED               0x00000008L
650 #define SQL_OJ_NOT_ORDERED          0x00000010L
651 #define SQL_OJ_INNER                0x00000020L
652 #define SQL_OJ_ALL_COMPARISON_OPS       0x00000040L
653 #endif
654 
655 
656 /*
657  *  SQLGetInfo - SQL_SCROLL_CONCURRENCY
658  */
659 #define SQL_SCCO_READ_ONLY          0x00000001L
660 #define SQL_SCCO_LOCK               0x00000002L
661 #define SQL_SCCO_OPT_ROWVER         0x00000004L
662 #define SQL_SCCO_OPT_VALUES         0x00000008L
663 
664 
665 /*
666  *  SQLGetInfo - SQL_TXN_CAPABLE
667  */
668 #define SQL_TC_NONE             0
669 #define SQL_TC_DML              1
670 #define SQL_TC_ALL              2
671 #define SQL_TC_DDL_COMMIT           3
672 #define SQL_TC_DDL_IGNORE           4
673 
674 
675 /*
676  *  SQLGetInfo - SQL_TXN_ISOLATION_OPTION
677  */
678 #define SQL_TXN_READ_UNCOMMITTED        0x00000001L
679 #define SQL_TRANSACTION_READ_UNCOMMITTED    SQL_TXN_READ_UNCOMMITTED
680 #define SQL_TXN_READ_COMMITTED          0x00000002L
681 #define SQL_TRANSACTION_READ_COMMITTED      SQL_TXN_READ_COMMITTED
682 #define SQL_TXN_REPEATABLE_READ         0x00000004L
683 #define SQL_TRANSACTION_REPEATABLE_READ     SQL_TXN_REPEATABLE_READ
684 #define SQL_TXN_SERIALIZABLE            0x00000008L
685 #define SQL_TRANSACTION_SERIALIZABLE        SQL_TXN_SERIALIZABLE
686 
687 
688 /*
689  *  SQLGetStmtAttr - statement attributes
690  */
691 #if (ODBCVER >= 0x0300)
692 #define SQL_ATTR_APP_ROW_DESC           10010
693 #define SQL_ATTR_APP_PARAM_DESC         10011
694 #define SQL_ATTR_IMP_ROW_DESC           10012
695 #define SQL_ATTR_IMP_PARAM_DESC         10013
696 #define SQL_ATTR_CURSOR_SCROLLABLE      (-1)
697 #define SQL_ATTR_CURSOR_SENSITIVITY     (-2)
698 #endif  /* ODBCVER >= 0x0300 */
699 
700 
701 /*
702  *  SQLGetStmtAttr - SQL_ATTR_CURSOR_SCROLLABLE
703  */
704 #if (ODBCVER >= 0x0300)
705 #define SQL_NONSCROLLABLE           0
706 #define SQL_SCROLLABLE              1
707 #endif  /* ODBCVER >= 0x0300 */
708 
709 
710 /*
711  *  SQLGetStmtAttr - SQL_ATTR_CURSOR_SENSITIVITY
712  */
713 #if (ODBCVER >= 0x0300)
714 #define SQL_UNSPECIFIED             0
715 #define SQL_INSENSITIVE             1
716 #define SQL_SENSITIVE               2
717 #endif  /* ODBCVER >= 0x0300 */
718 
719 
720 /*
721  *  SQLGetTypeInfo - SEARCHABLE
722  */
723 #if (ODBCVER >= 0x0300)
724 #define SQL_PRED_NONE               0
725 #define SQL_PRED_CHAR               1
726 #define SQL_PRED_BASIC              2
727 #endif  /* ODBCVER >= 0x0300 */
728 
729 
730 /*
731  *  SQLSpecialColumns - Column scopes
732  */
733 #define SQL_SCOPE_CURROW            0
734 #define SQL_SCOPE_TRANSACTION           1
735 #define SQL_SCOPE_SESSION           2
736 
737 
738 /*
739  *  SQLSpecialColumns - PSEUDO_COLUMN
740  */
741 #define SQL_PC_UNKNOWN              0
742 #if (ODBCVER >= 0x0300)
743 #define SQL_PC_NON_PSEUDO           1
744 #endif  /* ODBCVER >= 0x0300 */
745 #define SQL_PC_PSEUDO               2
746 
747 
748 /*
749  *  SQLSpecialColumns - IdentifierType
750  */
751 #if (ODBCVER >= 0x0300)
752 #define SQL_ROW_IDENTIFIER          1
753 #endif  /* ODBCVER >= 0x0300 */
754 
755 
756 /*
757  *  SQLStatistics - fUnique
758  */
759 #define SQL_INDEX_UNIQUE            0
760 #define SQL_INDEX_ALL               1
761 
762 
763 /*
764  *  SQLStatistics - TYPE
765  */
766 #define SQL_INDEX_CLUSTERED         1
767 #define SQL_INDEX_HASHED            2
768 #define SQL_INDEX_OTHER             3
769 
770 
771 /*
772  *  SQLTransact/SQLEndTran
773  */
774 #define SQL_COMMIT              0
775 #define SQL_ROLLBACK                1
776 
777 
778 /*
779  *  Function Prototypes
780  */
781 SQLRETURN SQL_API SQLAllocConnect (
782     SQLHENV       EnvironmentHandle,
783     SQLHDBC     * ConnectionHandle);
784 
785 SQLRETURN SQL_API SQLAllocEnv (
786     SQLHENV     * EnvironmentHandle);
787 
788 #if (ODBCVER >= 0x0300)
789 SQLRETURN SQL_API SQLAllocHandle (
790     SQLSMALLINT       HandleType,
791     SQLHANDLE         InputHandle,
792     SQLHANDLE       * OutputHandle);
793 #endif  /* ODBCVER >= 0x0300 */
794 
795 SQLRETURN SQL_API SQLAllocStmt (
796     SQLHDBC       ConnectionHandle,
797     SQLHSTMT        * StatementHandle);
798 
799 SQLRETURN SQL_API SQLBindCol (
800     SQLHSTMT          StatementHandle,
801     SQLUSMALLINT      ColumnNumber,
802     SQLSMALLINT       TargetType,
803     SQLPOINTER        TargetValue,
804     SQLLEN        BufferLength,
805     SQLLEN      * StrLen_or_Ind);
806 
807 #if (ODBCVER >= 0x0300)
808 SQLRETURN SQL_API SQLBindParam (
809     SQLHSTMT          StatementHandle,
810     SQLUSMALLINT      ParameterNumber,
811     SQLSMALLINT       ValueType,
812     SQLSMALLINT       ParameterType,
813     SQLULEN       LengthPrecision,
814     SQLSMALLINT       ParameterScale,
815     SQLPOINTER        ParameterValue,
816     SQLLEN      * StrLen_or_Ind);
817 #endif
818 
819 SQLRETURN SQL_API SQLCancel (
820     SQLHSTMT          StatementHandle);
821 
822 #if (ODBCVER >= 0x0300)
823 SQLRETURN SQL_API SQLCloseCursor (
824     SQLHSTMT          StatementHandle);
825 
826 /*
827  *  Using SQLLEN * instead of SQLPOINTER for NumericAttribute,
828  *  makes the prototype the same as SQLColAttributes (deprecated)
829  *  and clearer for 64bit ports
830  */
831 SQLRETURN SQL_API SQLColAttribute (
832     SQLHSTMT          StatementHandle,
833     SQLUSMALLINT      ColumnNumber,
834     SQLUSMALLINT      FieldIdentifier,
835     SQLPOINTER        CharacterAttribute,
836     SQLSMALLINT       BufferLength,
837     SQLSMALLINT     * StringLength,
838     SQLLEN      * NumericAttribute);
839 #endif
840 
841 SQLRETURN SQL_API SQLColumns (
842     SQLHSTMT          StatementHandle,
843     SQLCHAR     * CatalogName,
844     SQLSMALLINT       NameLength1,
845     SQLCHAR     * SchemaName,
846     SQLSMALLINT       NameLength2,
847     SQLCHAR     * TableName,
848     SQLSMALLINT       NameLength3,
849     SQLCHAR     * ColumnName,
850     SQLSMALLINT       NameLength4);
851 
852 SQLRETURN SQL_API SQLConnect (
853     SQLHDBC       ConnectionHandle,
854     SQLCHAR     * ServerName,
855     SQLSMALLINT       NameLength1,
856     SQLCHAR     * UserName,
857     SQLSMALLINT       NameLength2,
858     SQLCHAR     * Authentication,
859     SQLSMALLINT       NameLength3);
860 
861 #if (ODBCVER >= 0x0300)
862 SQLRETURN SQL_API SQLCopyDesc (
863     SQLHDESC          SourceDescHandle,
864     SQLHDESC          TargetDescHandle);
865 #endif
866 
867 SQLRETURN SQL_API SQLDataSources (
868     SQLHENV       EnvironmentHandle,
869     SQLUSMALLINT      Direction,
870     SQLCHAR     * ServerName,
871     SQLSMALLINT       BufferLength1,
872     SQLSMALLINT     * NameLength1,
873     SQLCHAR     * Description,
874     SQLSMALLINT       BufferLength2,
875     SQLSMALLINT     * NameLength2);
876 
877 SQLRETURN SQL_API SQLDescribeCol (
878     SQLHSTMT          StatementHandle,
879     SQLUSMALLINT      ColumnNumber,
880     SQLCHAR     * ColumnName,
881     SQLSMALLINT       BufferLength,
882     SQLSMALLINT     * NameLength,
883     SQLSMALLINT     * DataType,
884     SQLULEN     * ColumnSize,
885     SQLSMALLINT     * DecimalDigits,
886     SQLSMALLINT     * Nullable);
887 
888 SQLRETURN SQL_API SQLDisconnect (
889     SQLHDBC       ConnectionHandle);
890 
891 #if (ODBCVER >= 0x0300)
892 SQLRETURN SQL_API SQLEndTran (
893     SQLSMALLINT       HandleType,
894     SQLHANDLE         Handle,
895     SQLSMALLINT       CompletionType);
896 #endif
897 
898 SQLRETURN SQL_API SQLError (
899     SQLHENV       EnvironmentHandle,
900     SQLHDBC       ConnectionHandle,
901     SQLHSTMT          StatementHandle,
902     SQLCHAR     * Sqlstate,
903     SQLINTEGER      * NativeError,
904     SQLCHAR     * MessageText,
905     SQLSMALLINT       BufferLength,
906     SQLSMALLINT     * TextLength);
907 
908 SQLRETURN SQL_API SQLExecDirect (
909     SQLHSTMT          StatementHandle,
910     SQLCHAR     * StatementText,
911     SQLINTEGER        TextLength);
912 
913 SQLRETURN SQL_API SQLExecute (
914     SQLHSTMT          StatementHandle);
915 
916 SQLRETURN SQL_API SQLFetch (
917     SQLHSTMT          StatementHandle);
918 
919 #if (ODBCVER >= 0x0300)
920 SQLRETURN SQL_API SQLFetchScroll (
921     SQLHSTMT          StatementHandle,
922     SQLSMALLINT       FetchOrientation,
923     SQLLEN        FetchOffset);
924 #endif
925 
926 SQLRETURN SQL_API SQLFreeConnect (
927     SQLHDBC       ConnectionHandle);
928 
929 SQLRETURN SQL_API SQLFreeEnv (
930     SQLHENV       EnvironmentHandle);
931 
932 #if (ODBCVER >= 0x0300)
933 SQLRETURN SQL_API SQLFreeHandle (
934     SQLSMALLINT       HandleType,
935     SQLHANDLE         Handle);
936 #endif
937 
938 SQLRETURN SQL_API SQLFreeStmt (
939     SQLHSTMT          StatementHandle,
940     SQLUSMALLINT      Option);
941 
942 #if (ODBCVER >= 0x0300)
943 SQLRETURN SQL_API SQLGetConnectAttr (
944     SQLHDBC       ConnectionHandle,
945     SQLINTEGER        Attribute,
946     SQLPOINTER        Value,
947     SQLINTEGER        BufferLength,
948     SQLINTEGER      * StringLength);
949 #endif
950 
951 SQLRETURN SQL_API SQLGetConnectOption (
952     SQLHDBC       ConnectionHandle,
953     SQLUSMALLINT      Option,
954     SQLPOINTER        Value);
955 
956 SQLRETURN SQL_API SQLGetCursorName (
957     SQLHSTMT          StatementHandle,
958     SQLCHAR     * CursorName,
959     SQLSMALLINT       BufferLength,
960     SQLSMALLINT     * NameLength);
961 
962 SQLRETURN SQL_API SQLGetData (
963     SQLHSTMT          StatementHandle,
964     SQLUSMALLINT      ColumnNumber,
965     SQLSMALLINT       TargetType,
966     SQLPOINTER        TargetValue,
967     SQLLEN        BufferLength,
968     SQLLEN      * StrLen_or_Ind);
969 
970 #if (ODBCVER >= 0x0300)
971 SQLRETURN SQL_API SQLGetDescField (
972     SQLHDESC          DescriptorHandle,
973     SQLSMALLINT       RecNumber,
974     SQLSMALLINT       FieldIdentifier,
975     SQLPOINTER        Value,
976     SQLINTEGER        BufferLength,
977     SQLINTEGER      * StringLength);
978 
979 SQLRETURN SQL_API SQLGetDescRec (
980     SQLHDESC          DescriptorHandle,
981     SQLSMALLINT       RecNumber,
982     SQLCHAR     * Name,
983     SQLSMALLINT       BufferLength,
984     SQLSMALLINT     * StringLength,
985     SQLSMALLINT     * Type,
986     SQLSMALLINT     * SubType,
987     SQLLEN      * Length,
988     SQLSMALLINT     * Precision,
989     SQLSMALLINT     * Scale,
990     SQLSMALLINT     * Nullable);
991 
992 SQLRETURN SQL_API SQLGetDiagField (
993     SQLSMALLINT       HandleType,
994     SQLHANDLE         Handle,
995     SQLSMALLINT       RecNumber,
996     SQLSMALLINT       DiagIdentifier,
997     SQLPOINTER        DiagInfo,
998     SQLSMALLINT       BufferLength,
999     SQLSMALLINT     * StringLength);
1000 
1001 SQLRETURN SQL_API SQLGetDiagRec (
1002     SQLSMALLINT       HandleType,
1003     SQLHANDLE         Handle,
1004     SQLSMALLINT       RecNumber,
1005     SQLCHAR     * Sqlstate,
1006     SQLINTEGER      * NativeError,
1007     SQLCHAR     * MessageText,
1008     SQLSMALLINT       BufferLength,
1009     SQLSMALLINT     * TextLength);
1010 
1011 SQLRETURN SQL_API SQLGetEnvAttr (
1012     SQLHENV       EnvironmentHandle,
1013     SQLINTEGER        Attribute,
1014     SQLPOINTER        Value,
1015     SQLINTEGER        BufferLength,
1016     SQLINTEGER      * StringLength);
1017 #endif /* ODBCVER >= 0x0300 */
1018 
1019 SQLRETURN SQL_API SQLGetFunctions (
1020     SQLHDBC     ConnectionHandle,
1021     SQLUSMALLINT    FunctionId,
1022     SQLUSMALLINT *  Supported);
1023 
1024 SQLRETURN SQL_API SQLGetInfo (
1025     SQLHDBC       ConnectionHandle,
1026     SQLUSMALLINT      InfoType,
1027     SQLPOINTER        InfoValue,
1028     SQLSMALLINT       BufferLength,
1029     SQLSMALLINT     * StringLength);
1030 
1031 #if (ODBCVER >= 0x0300)
1032 SQLRETURN SQL_API SQLGetStmtAttr (
1033     SQLHSTMT          StatementHandle,
1034     SQLINTEGER        Attribute,
1035     SQLPOINTER        Value,
1036     SQLINTEGER        BufferLength,
1037     SQLINTEGER      * StringLength);
1038 #endif /* ODBCVER >= 0x0300 */
1039 
1040 SQLRETURN SQL_API SQLGetStmtOption (
1041     SQLHSTMT          StatementHandle,
1042     SQLUSMALLINT      Option,
1043     SQLPOINTER        Value);
1044 
1045 SQLRETURN SQL_API SQLGetTypeInfo (
1046     SQLHSTMT          StatementHandle,
1047     SQLSMALLINT       DataType);
1048 
1049 SQLRETURN SQL_API SQLNumResultCols (
1050     SQLHSTMT          StatementHandle,
1051     SQLSMALLINT     * ColumnCount);
1052 
1053 SQLRETURN SQL_API SQLParamData (
1054     SQLHSTMT          StatementHandle,
1055     SQLPOINTER      * Value);
1056 
1057 SQLRETURN SQL_API SQLPrepare (
1058     SQLHSTMT          StatementHandle,
1059     SQLCHAR     * StatementText,
1060     SQLINTEGER        TextLength);
1061 
1062 SQLRETURN SQL_API SQLPutData (
1063     SQLHSTMT          StatementHandle,
1064     SQLPOINTER        Data,
1065     SQLLEN        StrLen_or_Ind);
1066 
1067 SQLRETURN SQL_API SQLRowCount (
1068     SQLHSTMT          StatementHandle,
1069     SQLLEN      * RowCount);
1070 
1071 #if (ODBCVER >= 0x0300)
1072 SQLRETURN SQL_API SQLSetConnectAttr (
1073     SQLHDBC       ConnectionHandle,
1074     SQLINTEGER        Attribute,
1075     SQLPOINTER        Value,
1076     SQLINTEGER        StringLength);
1077 #endif /* ODBCVER >= 0x0300 */
1078 
1079 SQLRETURN SQL_API SQLSetConnectOption (
1080     SQLHDBC       ConnectionHandle,
1081     SQLUSMALLINT      Option,
1082     SQLULEN       Value);
1083 
1084 SQLRETURN SQL_API SQLSetCursorName (
1085     SQLHSTMT          StatementHandle,
1086     SQLCHAR     * CursorName,
1087     SQLSMALLINT       NameLength);
1088 
1089 #if (ODBCVER >= 0x0300)
1090 SQLRETURN SQL_API SQLSetDescField (
1091     SQLHDESC          DescriptorHandle,
1092     SQLSMALLINT       RecNumber,
1093     SQLSMALLINT       FieldIdentifier,
1094     SQLPOINTER        Value,
1095     SQLINTEGER        BufferLength);
1096 
1097 SQLRETURN SQL_API SQLSetDescRec (
1098     SQLHDESC          DescriptorHandle,
1099     SQLSMALLINT       RecNumber,
1100     SQLSMALLINT       Type,
1101     SQLSMALLINT       SubType,
1102     SQLLEN        Length,
1103     SQLSMALLINT       Precision,
1104     SQLSMALLINT       Scale,
1105     SQLPOINTER        Data,
1106     SQLLEN      * StringLength,
1107     SQLLEN      * Indicator);
1108 
1109 SQLRETURN SQL_API SQLSetEnvAttr (
1110     SQLHENV       EnvironmentHandle,
1111     SQLINTEGER        Attribute,
1112     SQLPOINTER        Value,
1113     SQLINTEGER        StringLength);
1114 #endif /* ODBCVER >= 0x0300 */
1115 
1116 
1117 #if (ODBCVER >= 0x0300)
1118 SQLRETURN SQL_API SQLSetStmtAttr (
1119     SQLHSTMT          StatementHandle,
1120     SQLINTEGER        Attribute,
1121     SQLPOINTER        Value,
1122     SQLINTEGER        StringLength);
1123 #endif
1124 
1125 SQLRETURN SQL_API SQLSetStmtOption (
1126     SQLHSTMT          StatementHandle,
1127     SQLUSMALLINT      Option,
1128     SQLULEN       Value);
1129 
1130 SQLRETURN SQL_API SQLSpecialColumns (
1131     SQLHSTMT          StatementHandle,
1132     SQLUSMALLINT      IdentifierType,
1133     SQLCHAR     * CatalogName,
1134     SQLSMALLINT       NameLength1,
1135     SQLCHAR     * SchemaName,
1136     SQLSMALLINT       NameLength2,
1137     SQLCHAR     * TableName,
1138     SQLSMALLINT       NameLength3,
1139     SQLUSMALLINT      Scope,
1140     SQLUSMALLINT      Nullable);
1141 
1142 SQLRETURN SQL_API SQLStatistics (
1143     SQLHSTMT          StatementHandle,
1144     SQLCHAR     * CatalogName,
1145     SQLSMALLINT       NameLength1,
1146     SQLCHAR     * SchemaName,
1147     SQLSMALLINT       NameLength2,
1148     SQLCHAR     * TableName,
1149     SQLSMALLINT       NameLength3,
1150     SQLUSMALLINT      Unique,
1151     SQLUSMALLINT      Reserved);
1152 
1153 SQLRETURN SQL_API SQLTables (
1154     SQLHSTMT          StatementHandle,
1155     SQLCHAR     * CatalogName,
1156     SQLSMALLINT       NameLength1,
1157     SQLCHAR     * SchemaName,
1158     SQLSMALLINT       NameLength2,
1159     SQLCHAR     * TableName,
1160     SQLSMALLINT       NameLength3,
1161     SQLCHAR     * TableType,
1162     SQLSMALLINT       NameLength4);
1163 
1164 SQLRETURN SQL_API SQLTransact (
1165     SQLHENV       EnvironmentHandle,
1166     SQLHDBC       ConnectionHandle,
1167     SQLUSMALLINT      CompletionType);
1168 
1169 
1170 /*
1171  *  Depreciated ODBC 1.0 function - Use SQLBindParameter
1172  */
1173 SQLRETURN SQL_API SQLSetParam (
1174     SQLHSTMT          StatementHandle,
1175     SQLUSMALLINT      ParameterNumber,
1176     SQLSMALLINT       ValueType,
1177     SQLSMALLINT       ParameterType,
1178     SQLULEN       LengthPrecision,
1179     SQLSMALLINT       ParameterScale,
1180     SQLPOINTER        ParameterValue,
1181     SQLLEN      * StrLen_or_Ind);
1182 
1183 #ifdef __cplusplus
1184 }
1185 #endif
1186 
1187 #endif   /* _SQL_H */
1188