xref: /AOO41X/main/unixODBC/inc/sqlext.h (revision acaca3423cb54ec1f8b99ebd1a99aa0abb0b33f9) !
1 /*
2  *  sqlext.h
3  *
4  *  $Id: sqlext.h,v 1.11 2009/08/30 10:48:32 source Exp $
5  *
6  *  ODBC defines (ext)
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 _SQLEXT_H
79 #define _SQLEXT_H
80 
81 #ifndef _SQL_H
82 #include <odbc/sql.h>
83 #endif
84 
85 #ifdef __cplusplus
86 extern "C" {
87 #endif
88 
89 
90 /*
91  *  Useful Constants
92  */
93 #define SQL_SPEC_MAJOR              3
94 #define SQL_SPEC_MINOR              52
95 #define SQL_SPEC_STRING             "03.52"
96 
97 #define SQL_SQLSTATE_SIZE           5
98 #define SQL_MAX_DSN_LENGTH          32
99 #define SQL_MAX_OPTION_STRING_LENGTH        256
100 
101 
102 /*
103  *  Handle types
104  */
105 #if (ODBCVER >= 0x0300)
106 #define SQL_HANDLE_SENV             5
107 #endif  /* ODBCVER >= 0x0300 */
108 
109 
110 /*
111  *  Function return codes
112  */
113 #if (ODBCVER < 0x0300)
114 #define SQL_NO_DATA_FOUND           100
115 #else
116 #define SQL_NO_DATA_FOUND           SQL_NO_DATA
117 #endif  /* ODBCVER < 0x0300 */
118 
119 
120 /*
121  *  Special length values for attributes
122  */
123 #if (ODBCVER >= 0x0300)
124 #define SQL_IS_POINTER              (-4)
125 #define SQL_IS_UINTEGER             (-5)
126 #define SQL_IS_INTEGER              (-6)
127 #define SQL_IS_USMALLINT            (-7)
128 #define SQL_IS_SMALLINT             (-8)
129 #endif  /* ODBCVER >= 0x0300 */
130 
131 
132 /*
133  *  SQL extended datatypes
134  */
135 #define SQL_DATE                9
136 #if (ODBCVER >= 0x0300)
137 #define SQL_INTERVAL                10
138 #endif  /* ODBCVER >= 0x0300 */
139 #define SQL_TIME                10
140 #define SQL_TIMESTAMP               11
141 #define SQL_LONGVARCHAR             (-1)
142 #define SQL_BINARY              (-2)
143 #define SQL_VARBINARY               (-3)
144 #define SQL_LONGVARBINARY           (-4)
145 #define SQL_BIGINT              (-5)
146 #define SQL_TINYINT             (-6)
147 #define SQL_BIT                 (-7)
148 #if (ODBCVER >= 0x0350)
149 #define SQL_GUID                (-11)
150 #endif  /* ODBCVER >= 0x0350 */
151 
152 
153 /*
154  *  SQL Interval datatypes
155  */
156 #if (ODBCVER >= 0x0300)
157 #define SQL_CODE_YEAR               1
158 #define SQL_CODE_MONTH              2
159 #define SQL_CODE_DAY                3
160 #define SQL_CODE_HOUR               4
161 #define SQL_CODE_MINUTE             5
162 #define SQL_CODE_SECOND             6
163 #define SQL_CODE_YEAR_TO_MONTH          7
164 #define SQL_CODE_DAY_TO_HOUR            8
165 #define SQL_CODE_DAY_TO_MINUTE          9
166 #define SQL_CODE_DAY_TO_SECOND          10
167 #define SQL_CODE_HOUR_TO_MINUTE         11
168 #define SQL_CODE_HOUR_TO_SECOND         12
169 #define SQL_CODE_MINUTE_TO_SECOND       13
170 
171 #define SQL_INTERVAL_YEAR           (100 + SQL_CODE_YEAR)
172 #define SQL_INTERVAL_MONTH          (100 + SQL_CODE_MONTH)
173 #define SQL_INTERVAL_DAY            (100 + SQL_CODE_DAY)
174 #define SQL_INTERVAL_HOUR           (100 + SQL_CODE_HOUR)
175 #define SQL_INTERVAL_MINUTE         (100 + SQL_CODE_MINUTE)
176 #define SQL_INTERVAL_SECOND                 (100 + SQL_CODE_SECOND)
177 #define SQL_INTERVAL_YEAR_TO_MONTH      (100 + SQL_CODE_YEAR_TO_MONTH)
178 #define SQL_INTERVAL_DAY_TO_HOUR        (100 + SQL_CODE_DAY_TO_HOUR)
179 #define SQL_INTERVAL_DAY_TO_MINUTE      (100 + SQL_CODE_DAY_TO_MINUTE)
180 #define SQL_INTERVAL_DAY_TO_SECOND      (100 + SQL_CODE_DAY_TO_SECOND)
181 #define SQL_INTERVAL_HOUR_TO_MINUTE     (100 + SQL_CODE_HOUR_TO_MINUTE)
182 #define SQL_INTERVAL_HOUR_TO_SECOND     (100 + SQL_CODE_HOUR_TO_SECOND)
183 #define SQL_INTERVAL_MINUTE_TO_SECOND       (100 + SQL_CODE_MINUTE_TO_SECOND)
184 #else
185 #define SQL_INTERVAL_YEAR           (-80)
186 #define SQL_INTERVAL_MONTH          (-81)
187 #define SQL_INTERVAL_YEAR_TO_MONTH      (-82)
188 #define SQL_INTERVAL_DAY            (-83)
189 #define SQL_INTERVAL_HOUR           (-84)
190 #define SQL_INTERVAL_MINUTE         (-85)
191 #define SQL_INTERVAL_SECOND         (-86)
192 #define SQL_INTERVAL_DAY_TO_HOUR        (-87)
193 #define SQL_INTERVAL_DAY_TO_MINUTE      (-88)
194 #define SQL_INTERVAL_DAY_TO_SECOND      (-89)
195 #define SQL_INTERVAL_HOUR_TO_MINUTE     (-90)
196 #define SQL_INTERVAL_HOUR_TO_SECOND     (-91)
197 #define SQL_INTERVAL_MINUTE_TO_SECOND       (-92)
198 #endif  /* ODBCVER >= 0x0300 */
199 
200 
201 /*
202  *   SQL unicode data types
203  */
204 #if (ODBCVER <= 0x0300)
205 /* These definitions are historical and obsolete */
206 #define SQL_UNICODE             (-95)
207 #define SQL_UNICODE_VARCHAR         (-96)
208 #define SQL_UNICODE_LONGVARCHAR         (-97)
209 #define SQL_UNICODE_CHAR            SQL_UNICODE
210 #else
211 #define SQL_UNICODE             SQL_WCHAR
212 #define SQL_UNICODE_VARCHAR         SQL_WVARCHAR
213 #define SQL_UNICODE_LONGVARCHAR         SQL_WLONGVARCHAR
214 #define SQL_UNICODE_CHAR            SQL_WCHAR
215 #endif  /* ODBCVER >= 0x0300 */
216 
217 
218 #if (ODBCVER < 0x0300)
219 #define SQL_TYPE_DRIVER_START           SQL_INTERVAL_YEAR
220 #define SQL_TYPE_DRIVER_END         SQL_UNICODE_LONGVARCHAR
221 #endif  /* ODBCVER < 0x0300 */
222 
223 
224 #define SQL_SIGNED_OFFSET           (-20)
225 #define SQL_UNSIGNED_OFFSET         (-22)
226 
227 
228 /*
229  *  C datatype to SQL datatype mapping
230  */
231 #define SQL_C_CHAR                  SQL_CHAR
232 #define SQL_C_LONG                  SQL_INTEGER
233 #define SQL_C_SHORT                 SQL_SMALLINT
234 #define SQL_C_FLOAT                 SQL_REAL
235 #define SQL_C_DOUBLE                SQL_DOUBLE
236 #if (ODBCVER >= 0x0300)
237 #define SQL_C_NUMERIC               SQL_NUMERIC
238 #endif   /* ODBCVER >= 0x0300 */
239 #define SQL_C_DEFAULT               99
240 
241 
242 #define SQL_C_DATE              SQL_DATE
243 #define SQL_C_TIME              SQL_TIME
244 #define SQL_C_TIMESTAMP             SQL_TIMESTAMP
245 #define SQL_C_BINARY                SQL_BINARY
246 #define SQL_C_BIT               SQL_BIT
247 #define SQL_C_TINYINT               SQL_TINYINT
248 #define SQL_C_SLONG             (SQL_C_LONG+SQL_SIGNED_OFFSET)
249 #define SQL_C_SSHORT                (SQL_C_SHORT+SQL_SIGNED_OFFSET)
250 #define SQL_C_STINYINT              (SQL_TINYINT+SQL_SIGNED_OFFSET)
251 #define SQL_C_ULONG             (SQL_C_LONG+SQL_UNSIGNED_OFFSET)
252 #define SQL_C_USHORT                (SQL_C_SHORT+SQL_UNSIGNED_OFFSET)
253 #define SQL_C_UTINYINT              (SQL_TINYINT+SQL_UNSIGNED_OFFSET)
254 
255 #if defined(_WIN64)
256 #define SQL_C_BOOKMARK              SQL_C_UBIGINT
257 #else
258 #define SQL_C_BOOKMARK              SQL_C_ULONG
259 #endif
260 
261 #if (ODBCVER >= 0x0300)
262 #define SQL_C_TYPE_DATE             SQL_TYPE_DATE
263 #define SQL_C_TYPE_TIME             SQL_TYPE_TIME
264 #define SQL_C_TYPE_TIMESTAMP            SQL_TYPE_TIMESTAMP
265 #define SQL_C_INTERVAL_YEAR         SQL_INTERVAL_YEAR
266 #define SQL_C_INTERVAL_MONTH            SQL_INTERVAL_MONTH
267 #define SQL_C_INTERVAL_DAY          SQL_INTERVAL_DAY
268 #define SQL_C_INTERVAL_HOUR         SQL_INTERVAL_HOUR
269 #define SQL_C_INTERVAL_MINUTE           SQL_INTERVAL_MINUTE
270 #define SQL_C_INTERVAL_SECOND           SQL_INTERVAL_SECOND
271 #define SQL_C_INTERVAL_YEAR_TO_MONTH        SQL_INTERVAL_YEAR_TO_MONTH
272 #define SQL_C_INTERVAL_DAY_TO_HOUR      SQL_INTERVAL_DAY_TO_HOUR
273 #define SQL_C_INTERVAL_DAY_TO_MINUTE        SQL_INTERVAL_DAY_TO_MINUTE
274 #define SQL_C_INTERVAL_DAY_TO_SECOND        SQL_INTERVAL_DAY_TO_SECOND
275 #define SQL_C_INTERVAL_HOUR_TO_MINUTE       SQL_INTERVAL_HOUR_TO_MINUTE
276 #define SQL_C_INTERVAL_HOUR_TO_SECOND       SQL_INTERVAL_HOUR_TO_SECOND
277 #define SQL_C_INTERVAL_MINUTE_TO_SECOND     SQL_INTERVAL_MINUTE_TO_SECOND
278 #define SQL_C_SBIGINT               (SQL_BIGINT+SQL_SIGNED_OFFSET)
279 #define SQL_C_UBIGINT               (SQL_BIGINT+SQL_UNSIGNED_OFFSET)
280 #define SQL_C_VARBOOKMARK           SQL_C_BINARY
281 #endif   /* ODBCVER >= 0x0300 */
282 
283 #if (ODBCVER >= 0x0350)
284 #define SQL_C_GUID              SQL_GUID
285 #endif
286 
287 #define SQL_TYPE_NULL               0
288 
289 #if (ODBCVER < 0x0300)
290 #define SQL_TYPE_MIN                SQL_BIT
291 #define SQL_TYPE_MAX                SQL_VARCHAR
292 #endif  /* ODBCVER < 0x0300 */
293 
294 
295 /*
296  * ----------------------------------------------------------------------
297  *  Level 1 Functions
298  * ----------------------------------------------------------------------
299  */
300 
301 /*
302  *  SQLBindParameter
303  */
304 #define SQL_DEFAULT_PARAM           (-5)
305 #define SQL_IGNORE              (-6)
306 #if (ODBCVER >= 0x0300)
307 #define SQL_COLUMN_IGNORE           SQL_IGNORE
308 #endif  /* ODBCVER >= 0x0300 */
309 #define SQL_LEN_DATA_AT_EXEC_OFFSET     (-100)
310 #define SQL_LEN_DATA_AT_EXEC(length)        (-(length)+SQL_LEN_DATA_AT_EXEC_OFFSET)
311 
312 
313 /*
314  *  binary length for driver specific attributes
315  */
316 #define SQL_LEN_BINARY_ATTR_OFFSET       (-100)
317 #define SQL_LEN_BINARY_ATTR(length)  (-(length)+SQL_LEN_BINARY_ATTR_OFFSET)
318 
319 
320 /*
321  *  SQLColAttributes - ODBC 2.x defines
322  */
323 #define SQL_COLUMN_COUNT            0
324 #define SQL_COLUMN_NAME             1
325 #define SQL_COLUMN_TYPE             2
326 #define SQL_COLUMN_LENGTH           3
327 #define SQL_COLUMN_PRECISION            4
328 #define SQL_COLUMN_SCALE            5
329 #define SQL_COLUMN_DISPLAY_SIZE         6
330 #define SQL_COLUMN_NULLABLE         7
331 #define SQL_COLUMN_UNSIGNED         8
332 #define SQL_COLUMN_MONEY            9
333 #define SQL_COLUMN_UPDATABLE            10
334 #define SQL_COLUMN_AUTO_INCREMENT       11
335 #define SQL_COLUMN_CASE_SENSITIVE       12
336 #define SQL_COLUMN_SEARCHABLE           13
337 #define SQL_COLUMN_TYPE_NAME            14
338 #define SQL_COLUMN_TABLE_NAME           15
339 #define SQL_COLUMN_OWNER_NAME           16
340 #define SQL_COLUMN_QUALIFIER_NAME       17
341 #define SQL_COLUMN_LABEL            18
342 #define SQL_COLATT_OPT_MAX          SQL_COLUMN_LABEL
343 #if (ODBCVER < 0x0300)
344 #define SQL_COLUMN_DRIVER_START         1000
345 #endif  /* ODBCVER < 0x0300 */
346 
347 #define SQL_COLATT_OPT_MIN          SQL_COLUMN_COUNT
348 
349 
350 /*
351  *  SQLColAttributes - SQL_COLUMN_UPDATABLE
352  */
353 #define SQL_ATTR_READONLY           0
354 #define SQL_ATTR_WRITE              1
355 #define SQL_ATTR_READWRITE_UNKNOWN      2
356 
357 
358 /*
359  *  SQLColAttributes - SQL_COLUMN_SEARCHABLE
360  */
361 #define SQL_UNSEARCHABLE            0
362 #define SQL_LIKE_ONLY               1
363 #define SQL_ALL_EXCEPT_LIKE         2
364 #define SQL_SEARCHABLE              3
365 #define SQL_PRED_SEARCHABLE         SQL_SEARCHABLE
366 
367 
368 /*
369  *  SQLDataSources - additional fetch directions
370  */
371 #if (ODBCVER >= 0x0300)
372 #define SQL_FETCH_FIRST_USER            31
373 #define SQL_FETCH_FIRST_SYSTEM          32
374 #endif  /* ODBCVER >= 0x0300 */
375 
376 
377 /*
378  *  SQLDriverConnect
379  */
380 #define SQL_DRIVER_NOPROMPT         0
381 #define SQL_DRIVER_COMPLETE         1
382 #define SQL_DRIVER_PROMPT           2
383 #define SQL_DRIVER_COMPLETE_REQUIRED        3
384 
385 
386 /*
387  *  SQLGetConnectAttr - ODBC 2.x attributes
388  */
389 #define SQL_ACCESS_MODE             101
390 #define SQL_AUTOCOMMIT              102
391 #define SQL_LOGIN_TIMEOUT           103
392 #define SQL_OPT_TRACE               104
393 #define SQL_OPT_TRACEFILE           105
394 #define SQL_TRANSLATE_DLL           106
395 #define SQL_TRANSLATE_OPTION            107
396 #define SQL_TXN_ISOLATION           108
397 #define SQL_CURRENT_QUALIFIER           109
398 #define SQL_ODBC_CURSORS            110
399 #define SQL_QUIET_MODE              111
400 #define SQL_PACKET_SIZE             112
401 
402 
403 /*
404  *  SQLGetConnectAttr - ODBC 3.0 attributes
405  */
406 #if (ODBCVER >= 0x0300)
407 #define SQL_ATTR_ACCESS_MODE            SQL_ACCESS_MODE
408 #define SQL_ATTR_AUTOCOMMIT         SQL_AUTOCOMMIT
409 #define SQL_ATTR_CONNECTION_TIMEOUT     113
410 #define SQL_ATTR_CURRENT_CATALOG        SQL_CURRENT_QUALIFIER
411 #define SQL_ATTR_DISCONNECT_BEHAVIOR        114
412 #define SQL_ATTR_ENLIST_IN_DTC          1207
413 #define SQL_ATTR_ENLIST_IN_XA           1208
414 #define SQL_ATTR_LOGIN_TIMEOUT          SQL_LOGIN_TIMEOUT
415 #define SQL_ATTR_ODBC_CURSORS           SQL_ODBC_CURSORS
416 #define SQL_ATTR_PACKET_SIZE            SQL_PACKET_SIZE
417 #define SQL_ATTR_QUIET_MODE         SQL_QUIET_MODE
418 #define SQL_ATTR_TRACE              SQL_OPT_TRACE
419 #define SQL_ATTR_TRACEFILE          SQL_OPT_TRACEFILE
420 #define SQL_ATTR_TRANSLATE_LIB          SQL_TRANSLATE_DLL
421 #define SQL_ATTR_TRANSLATE_OPTION       SQL_TRANSLATE_OPTION
422 #define SQL_ATTR_TXN_ISOLATION          SQL_TXN_ISOLATION
423 #endif  /* ODBCVER >= 0x0300 */
424 
425 #define SQL_ATTR_CONNECTION_DEAD        1209 /* GetConnectAttr only */
426 
427 
428 /*
429  *  These options have no meaning for a 3.0 driver
430  */
431 #if (ODBCVER < 0x0300)
432 #define SQL_CONN_OPT_MIN            SQL_ACCESS_MODE
433 #define SQL_CONN_OPT_MAX            SQL_PACKET_SIZE
434 #define SQL_CONNECT_OPT_DRVR_START      1000
435 #endif  /* ODBCVER < 0x0300 */
436 
437 
438 /*
439  *  SQLGetConnectAttr - SQL_ACCESS_MODE
440  */
441 #define SQL_MODE_READ_WRITE         0UL
442 #define SQL_MODE_READ_ONLY          1UL
443 #define SQL_MODE_DEFAULT            SQL_MODE_READ_WRITE
444 
445 
446 /*
447  *  SQLGetConnectAttr - SQL_AUTOCOMMIT
448  */
449 #define SQL_AUTOCOMMIT_OFF          0UL
450 #define SQL_AUTOCOMMIT_ON           1UL
451 #define SQL_AUTOCOMMIT_DEFAULT          SQL_AUTOCOMMIT_ON
452 
453 
454 /*
455  *  SQLGetConnectAttr - SQL_LOGIN_TIMEOUT
456  */
457 #define SQL_LOGIN_TIMEOUT_DEFAULT       15UL
458 
459 
460 /*
461  *  SQLGetConnectAttr - SQL_ODBC_CURSORS
462  */
463 #define SQL_CUR_USE_IF_NEEDED           0UL
464 #define SQL_CUR_USE_ODBC            1UL
465 #define SQL_CUR_USE_DRIVER          2UL
466 #define SQL_CUR_DEFAULT             SQL_CUR_USE_DRIVER
467 
468 
469 /*
470  *  SQLGetConnectAttr - SQL_OPT_TRACE
471  */
472 #define SQL_OPT_TRACE_OFF           0UL
473 #define SQL_OPT_TRACE_ON            1UL
474 #define SQL_OPT_TRACE_DEFAULT           SQL_OPT_TRACE_OFF
475 #if defined (WIN32)
476 #define SQL_OPT_TRACE_FILE_DEFAULT      "\\SQL.LOG"
477 #define SQL_OPT_TRACE_FILE_DEFAULTW     L"\\SQL.LOG"
478 #else
479 #define SQL_OPT_TRACE_FILE_DEFAULT      "/tmp/odbc.log"
480 #define SQL_OPT_TRACE_FILE_DEFAULTW     L"/tmp/odbc.log"
481 #endif
482 
483 
484 /*
485  *  SQLGetConnectAttr - SQL_ATTR_ANSI_APP
486  */
487 #if (ODBCVER >= 0x0351)
488 #define SQL_AA_TRUE             1L /* ANSI app */
489 #define SQL_AA_FALSE                0L /* Unicode app */
490 #endif
491 
492 
493 /*
494  *  SQLGetConnectAttr - SQL_ATTR_CONNECTION_DEAD
495  */
496 #define SQL_CD_TRUE             1L /* closed/dead */
497 #define SQL_CD_FALSE                0L /* open/available */
498 
499 
500 /*
501  *  SQLGetConnectAttr - SQL_ATTR_DISCONNECT_BEHAVIOR
502  */
503 #if (ODBCVER >= 0x0300)
504 #define SQL_DB_RETURN_TO_POOL           0UL
505 #define SQL_DB_DISCONNECT           1UL
506 #define SQL_DB_DEFAULT              SQL_DB_RETURN_TO_POOL
507 #endif  /* ODBCVER >= 0x0300 */
508 
509 
510 /*
511  *  SQLGetConnectAttr - SQL_ATTR_ENLIST_IN_DTC
512  */
513 #if (ODBCVER >= 0x0300)
514 #define SQL_DTC_DONE                0L
515 #endif  /* ODBCVER >= 0x0300 */
516 
517 
518 /*
519  *   SQLGetConnectAttr - Unicode drivers
520  */
521 #if (ODBCVER >= 0x0351)
522 #define SQL_ATTR_ANSI_APP           115
523 #endif
524 
525 
526 /*
527  *  SQLGetData
528  */
529 #define SQL_NO_TOTAL                (-4)
530 
531 
532 /*
533  *  SQLGetDescField - extended descriptor field
534  */
535 #if (ODBCVER >= 0x0300)
536 #define SQL_DESC_ARRAY_SIZE         20
537 #define SQL_DESC_ARRAY_STATUS_PTR       21
538 #define SQL_DESC_AUTO_UNIQUE_VALUE      SQL_COLUMN_AUTO_INCREMENT
539 #define SQL_DESC_BASE_COLUMN_NAME       22
540 #define SQL_DESC_BASE_TABLE_NAME        23
541 #define SQL_DESC_BIND_OFFSET_PTR        24
542 #define SQL_DESC_BIND_TYPE          25
543 #define SQL_DESC_CASE_SENSITIVE         SQL_COLUMN_CASE_SENSITIVE
544 #define SQL_DESC_CATALOG_NAME           SQL_COLUMN_QUALIFIER_NAME
545 #define SQL_DESC_CONCISE_TYPE           SQL_COLUMN_TYPE
546 #define SQL_DESC_DATETIME_INTERVAL_PRECISION    26
547 #define SQL_DESC_DISPLAY_SIZE           SQL_COLUMN_DISPLAY_SIZE
548 #define SQL_DESC_FIXED_PREC_SCALE       SQL_COLUMN_MONEY
549 #define SQL_DESC_LABEL              SQL_COLUMN_LABEL
550 #define SQL_DESC_LITERAL_PREFIX         27
551 #define SQL_DESC_LITERAL_SUFFIX         28
552 #define SQL_DESC_LOCAL_TYPE_NAME        29
553 #define SQL_DESC_MAXIMUM_SCALE          30
554 #define SQL_DESC_MINIMUM_SCALE          31
555 #define SQL_DESC_NUM_PREC_RADIX         32
556 #define SQL_DESC_PARAMETER_TYPE         33
557 #define SQL_DESC_ROWS_PROCESSED_PTR     34
558 #if (ODBCVER >= 0x0350)
559 #define SQL_DESC_ROWVER             35
560 #endif  /* ODBCVER >= 0x0350 */
561 #define SQL_DESC_SCHEMA_NAME            SQL_COLUMN_OWNER_NAME
562 #define SQL_DESC_SEARCHABLE         SQL_COLUMN_SEARCHABLE
563 #define SQL_DESC_TYPE_NAME          SQL_COLUMN_TYPE_NAME
564 #define SQL_DESC_TABLE_NAME         SQL_COLUMN_TABLE_NAME
565 #define SQL_DESC_UNSIGNED           SQL_COLUMN_UNSIGNED
566 #define SQL_DESC_UPDATABLE          SQL_COLUMN_UPDATABLE
567 #endif  /* ODBCVER >= 0x0300 */
568 
569 
570 /*
571  *  SQLGetDiagField - defines for diagnostics fields
572  */
573 #if (ODBCVER >= 0x0300)
574 #define SQL_DIAG_CURSOR_ROW_COUNT       (-1249)
575 #define SQL_DIAG_ROW_NUMBER         (-1248)
576 #define SQL_DIAG_COLUMN_NUMBER          (-1247)
577 #endif  /* ODBCVER >= 0x0300 */
578 
579 
580 /*
581  *  SQLGetDiagField  - SQL_DIAG_ROW_NUMBER and SQL_DIAG_COLUMN_NUMBER
582  */
583 #if (ODBCVER >= 0x0300)
584 #define SQL_NO_ROW_NUMBER           (-1)
585 #define SQL_NO_COLUMN_NUMBER            (-1)
586 #define SQL_ROW_NUMBER_UNKNOWN          (-2)
587 #define SQL_COLUMN_NUMBER_UNKNOWN       (-2)
588 #endif
589 
590 
591 #if (ODBCVER >= 0x0300)
592 /*
593  *  SQLGetEnvAttr - Attributes
594  */
595 #define SQL_ATTR_ODBC_VERSION           200
596 #define SQL_ATTR_CONNECTION_POOLING     201
597 #define SQL_ATTR_CP_MATCH           202
598 
599 
600 /*
601  * SQLGetEnvAttr - SQL_ATTR_ODBC_VERSION
602  */
603 #define SQL_OV_ODBC2                2UL
604 #define SQL_OV_ODBC3                3UL
605 
606 
607 /*
608  *  SQLGetEnvAttr - SQL_ATTR_CONNECTION_POOLING
609  */
610 #define SQL_CP_OFF              0UL
611 #define SQL_CP_ONE_PER_DRIVER           1UL
612 #define SQL_CP_ONE_PER_HENV         2UL
613 #define SQL_CP_DEFAULT              SQL_CP_OFF
614 
615 
616 /*
617  * SQLGetEnvAttr - SQL_ATTR_CP_MATCH
618  */
619 #define SQL_CP_STRICT_MATCH         0UL
620 #define SQL_CP_RELAXED_MATCH            1UL
621 #define SQL_CP_MATCH_DEFAULT            SQL_CP_STRICT_MATCH
622 #endif  /* ODBCVER >= 0x0300 */
623 
624 
625 /*
626  *  SQLGetFunctions - extensions to the X/Open specification
627  */
628 #if (ODBCVER >= 0x0300)
629 #define SQL_API_SQLALLOCHANDLESTD       73
630 #define SQL_API_SQLBULKOPERATIONS       24
631 #endif  /* ODBCVER >= 0x0300 */
632 #define SQL_API_SQLBINDPARAMETER        72
633 #define SQL_API_SQLBROWSECONNECT        55
634 #define SQL_API_SQLCOLATTRIBUTES        6
635 #define SQL_API_SQLCOLUMNPRIVILEGES     56
636 #define SQL_API_SQLDESCRIBEPARAM        58
637 #define SQL_API_SQLDRIVERCONNECT        41
638 #define SQL_API_SQLDRIVERS          71
639 #define SQL_API_SQLEXTENDEDFETCH        59
640 #define SQL_API_SQLFOREIGNKEYS          60
641 #define SQL_API_SQLMORERESULTS          61
642 #define SQL_API_SQLNATIVESQL            62
643 #define SQL_API_SQLNUMPARAMS            63
644 #define SQL_API_SQLPARAMOPTIONS         64
645 #define SQL_API_SQLPRIMARYKEYS          65
646 #define SQL_API_SQLPROCEDURECOLUMNS     66
647 #define SQL_API_SQLPROCEDURES           67
648 #define SQL_API_SQLSETPOS           68
649 #define SQL_API_SQLSETSCROLLOPTIONS     69
650 #define SQL_API_SQLTABLEPRIVILEGES      70
651 
652 
653 /*
654  *  These are not useful anymore as the X/Open specification defines
655  *  functions in the 10000 range
656  */
657 #if (ODBCVER < 0x0300)
658 #define SQL_EXT_API_LAST            SQL_API_SQLBINDPARAMETER
659 #define SQL_NUM_FUNCTIONS           23
660 #define SQL_EXT_API_START           40
661 #define SQL_NUM_EXTENSIONS      (SQL_EXT_API_LAST-SQL_EXT_API_START+1)
662 #endif  /* ODBCVER < 0x0300 */
663 
664 
665 /*
666  *  SQLGetFunctions - ODBC version 2.x and earlier
667  */
668 #define SQL_API_ALL_FUNCTIONS           0
669 
670 
671 /*
672  *  Loading by ordinal is not supported for 3.0 and above drivers
673  */
674 #define SQL_API_LOADBYORDINAL           199
675 
676 
677 /*
678  *  SQLGetFunctions - SQL_API_ODBC3_ALL_FUNCTIONS
679  */
680 #if (ODBCVER >= 0x0300)
681 #define SQL_API_ODBC3_ALL_FUNCTIONS     999
682 #define SQL_API_ODBC3_ALL_FUNCTIONS_SIZE    250
683 
684 #define SQL_FUNC_EXISTS(pfExists, uwAPI) \
685     ((*(((UWORD*) (pfExists)) + ((uwAPI) >> 4)) & (1 << ((uwAPI) & 0x000F))) \
686     ? SQL_TRUE : SQL_FALSE)
687 #endif  /* ODBCVER >= 0x0300 */
688 
689 
690 /*
691  *  SQLGetInfo - ODBC 2.x extensions to the X/Open standard
692  */
693 #define SQL_INFO_FIRST              0
694 #define SQL_ACTIVE_CONNECTIONS          0 /* MAX_DRIVER_CONNECTIONS */
695 #define SQL_ACTIVE_STATEMENTS           1 /* MAX_CONCURRENT_ACTIVITIES */
696 #define SQL_DRIVER_HDBC             3
697 #define SQL_DRIVER_HENV             4
698 #define SQL_DRIVER_HSTMT            5
699 #define SQL_DRIVER_NAME             6
700 #define SQL_DRIVER_VER              7
701 #define SQL_ODBC_API_CONFORMANCE        9
702 #define SQL_ODBC_VER                10
703 #define SQL_ROW_UPDATES             11
704 #define SQL_ODBC_SAG_CLI_CONFORMANCE        12
705 #define SQL_ODBC_SQL_CONFORMANCE        15
706 #define SQL_PROCEDURES              21
707 #define SQL_CONCAT_NULL_BEHAVIOR        22
708 #define SQL_CURSOR_ROLLBACK_BEHAVIOR        24
709 #define SQL_EXPRESSIONS_IN_ORDERBY      27
710 #define SQL_MAX_OWNER_NAME_LEN          32 /* MAX_SCHEMA_NAME_LEN */
711 #define SQL_MAX_PROCEDURE_NAME_LEN      33
712 #define SQL_MAX_QUALIFIER_NAME_LEN      34 /* MAX_CATALOG_NAME_LEN */
713 #define SQL_MULT_RESULT_SETS            36
714 #define SQL_MULTIPLE_ACTIVE_TXN         37
715 #define SQL_OUTER_JOINS             38
716 #define SQL_OWNER_TERM              39
717 #define SQL_PROCEDURE_TERM          40
718 #define SQL_QUALIFIER_NAME_SEPARATOR        41
719 #define SQL_QUALIFIER_TERM          42
720 #define SQL_SCROLL_OPTIONS          44
721 #define SQL_TABLE_TERM              45
722 #define SQL_CONVERT_FUNCTIONS           48
723 #define SQL_NUMERIC_FUNCTIONS           49
724 #define SQL_STRING_FUNCTIONS            50
725 #define SQL_SYSTEM_FUNCTIONS            51
726 #define SQL_TIMEDATE_FUNCTIONS          52
727 #define SQL_CONVERT_BIGINT          53
728 #define SQL_CONVERT_BINARY          54
729 #define SQL_CONVERT_BIT             55
730 #define SQL_CONVERT_CHAR            56
731 #define SQL_CONVERT_DATE            57
732 #define SQL_CONVERT_DECIMAL         58
733 #define SQL_CONVERT_DOUBLE          59
734 #define SQL_CONVERT_FLOAT           60
735 #define SQL_CONVERT_INTEGER         61
736 #define SQL_CONVERT_LONGVARCHAR         62
737 #define SQL_CONVERT_NUMERIC         63
738 #define SQL_CONVERT_REAL            64
739 #define SQL_CONVERT_SMALLINT            65
740 #define SQL_CONVERT_TIME            66
741 #define SQL_CONVERT_TIMESTAMP           67
742 #define SQL_CONVERT_TINYINT         68
743 #define SQL_CONVERT_VARBINARY           69
744 #define SQL_CONVERT_VARCHAR         70
745 #define SQL_CONVERT_LONGVARBINARY       71
746 #define SQL_ODBC_SQL_OPT_IEF            73 /* SQL_INTEGRITY */
747 #define SQL_CORRELATION_NAME            74
748 #define SQL_NON_NULLABLE_COLUMNS        75
749 #define SQL_DRIVER_HLIB             76
750 #define SQL_DRIVER_ODBC_VER         77
751 #define SQL_LOCK_TYPES              78
752 #define SQL_POS_OPERATIONS          79
753 #define SQL_POSITIONED_STATEMENTS       80
754 #define SQL_BOOKMARK_PERSISTENCE        82
755 #define SQL_STATIC_SENSITIVITY          83
756 #define SQL_FILE_USAGE              84
757 #define SQL_COLUMN_ALIAS            87
758 #define SQL_GROUP_BY                88
759 #define SQL_KEYWORDS                89
760 #define SQL_OWNER_USAGE             91
761 #define SQL_QUALIFIER_USAGE         92
762 #define SQL_QUOTED_IDENTIFIER_CASE      93
763 #define SQL_SUBQUERIES              95
764 #define SQL_UNION               96
765 #define SQL_MAX_ROW_SIZE_INCLUDES_LONG      103
766 #define SQL_MAX_CHAR_LITERAL_LEN        108
767 #define SQL_TIMEDATE_ADD_INTERVALS      109
768 #define SQL_TIMEDATE_DIFF_INTERVALS     110
769 #define SQL_NEED_LONG_DATA_LEN          111
770 #define SQL_MAX_BINARY_LITERAL_LEN      112
771 #define SQL_LIKE_ESCAPE_CLAUSE          113
772 #define SQL_QUALIFIER_LOCATION          114
773 
774 #if (ODBCVER >= 0x0201 && ODBCVER < 0x0300)
775 #define SQL_OJ_CAPABILITIES         65003  /* Temp value until ODBC 3.0 */
776 #endif  /* ODBCVER >= 0x0201 && ODBCVER < 0x0300 */
777 
778 
779 /*
780  *  These values are not useful anymore as X/Open defines values in the
781  *  10000 range
782  */
783 #if (ODBCVER < 0x0300)
784 #define SQL_INFO_LAST               SQL_QUALIFIER_LOCATION
785 #define SQL_INFO_DRIVER_START           1000
786 #endif  /* ODBCVER < 0x0300 */
787 
788 
789 /*
790  *  SQLGetInfo - ODBC 3.x extensions to the X/Open standard
791  */
792 #if (ODBCVER >= 0x0300)
793 #define SQL_ACTIVE_ENVIRONMENTS         116
794 #define SQL_ALTER_DOMAIN            117
795 
796 #define SQL_SQL_CONFORMANCE         118
797 #define SQL_DATETIME_LITERALS           119
798 
799 #define SQL_ASYNC_MODE              10021   /* new X/Open spec */
800 #define SQL_BATCH_ROW_COUNT         120
801 #define SQL_BATCH_SUPPORT           121
802 #define SQL_CATALOG_LOCATION            SQL_QUALIFIER_LOCATION
803 #define SQL_CATALOG_NAME_SEPARATOR      SQL_QUALIFIER_NAME_SEPARATOR
804 #define SQL_CATALOG_TERM            SQL_QUALIFIER_TERM
805 #define SQL_CATALOG_USAGE           SQL_QUALIFIER_USAGE
806 #define SQL_CONVERT_WCHAR           122
807 #define SQL_CONVERT_INTERVAL_DAY_TIME       123
808 #define SQL_CONVERT_INTERVAL_YEAR_MONTH     124
809 #define SQL_CONVERT_WLONGVARCHAR        125
810 #define SQL_CONVERT_WVARCHAR            126
811 #define SQL_CREATE_ASSERTION            127
812 #define SQL_CREATE_CHARACTER_SET        128
813 #define SQL_CREATE_COLLATION            129
814 #define SQL_CREATE_DOMAIN           130
815 #define SQL_CREATE_SCHEMA           131
816 #define SQL_CREATE_TABLE            132
817 #define SQL_CREATE_TRANSLATION          133
818 #define SQL_CREATE_VIEW             134
819 #define SQL_DRIVER_HDESC            135
820 #define SQL_DROP_ASSERTION          136
821 #define SQL_DROP_CHARACTER_SET          137
822 #define SQL_DROP_COLLATION          138
823 #define SQL_DROP_DOMAIN             139
824 #define SQL_DROP_SCHEMA             140
825 #define SQL_DROP_TABLE              141
826 #define SQL_DROP_TRANSLATION            142
827 #define SQL_DROP_VIEW               143
828 #define SQL_DYNAMIC_CURSOR_ATTRIBUTES1      144
829 #define SQL_DYNAMIC_CURSOR_ATTRIBUTES2      145
830 #define SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES1 146
831 #define SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES2 147
832 #define SQL_INDEX_KEYWORDS          148
833 #define SQL_INFO_SCHEMA_VIEWS           149
834 #define SQL_KEYSET_CURSOR_ATTRIBUTES1       150
835 #define SQL_KEYSET_CURSOR_ATTRIBUTES2       151
836 #define SQL_MAX_ASYNC_CONCURRENT_STATEMENTS 10022   /* new X/Open spec */
837 #define SQL_ODBC_INTERFACE_CONFORMANCE      152
838 #define SQL_PARAM_ARRAY_ROW_COUNTS      153
839 #define SQL_PARAM_ARRAY_SELECTS         154
840 #define SQL_SCHEMA_TERM             SQL_OWNER_TERM
841 #define SQL_SCHEMA_USAGE            SQL_OWNER_USAGE
842 #define SQL_SQL92_DATETIME_FUNCTIONS        155
843 #define SQL_SQL92_FOREIGN_KEY_DELETE_RULE   156
844 #define SQL_SQL92_FOREIGN_KEY_UPDATE_RULE   157
845 #define SQL_SQL92_GRANT             158
846 #define SQL_SQL92_NUMERIC_VALUE_FUNCTIONS   159
847 #define SQL_SQL92_PREDICATES            160
848 #define SQL_SQL92_RELATIONAL_JOIN_OPERATORS 161
849 #define SQL_SQL92_REVOKE            162
850 #define SQL_SQL92_ROW_VALUE_CONSTRUCTOR     163
851 #define SQL_SQL92_STRING_FUNCTIONS      164
852 #define SQL_SQL92_VALUE_EXPRESSIONS     165
853 #define SQL_STANDARD_CLI_CONFORMANCE        166
854 #define SQL_STATIC_CURSOR_ATTRIBUTES1       167
855 #define SQL_STATIC_CURSOR_ATTRIBUTES2       168
856 
857 #define SQL_AGGREGATE_FUNCTIONS         169
858 #define SQL_DDL_INDEX               170
859 #define SQL_DM_VER              171
860 #define SQL_INSERT_STATEMENT            172
861 #define SQL_UNION_STATEMENT         SQL_UNION
862 
863 #endif  /* ODBCVER >= 0x0300 */
864 
865 #define SQL_DTC_TRANSITION_COST         1750
866 
867 
868 /*
869  *  SQLGetInfo - SQL_AGGREGATE_FUNCTIONS
870  */
871 #if (ODBCVER >= 0x0300)
872 #define SQL_AF_AVG              0x00000001L
873 #define SQL_AF_COUNT                0x00000002L
874 #define SQL_AF_MAX              0x00000004L
875 #define SQL_AF_MIN              0x00000008L
876 #define SQL_AF_SUM              0x00000010L
877 #define SQL_AF_DISTINCT             0x00000020L
878 #define SQL_AF_ALL              0x00000040L
879 #endif  /* ODBCVER >= 0x0300 */
880 
881 /*
882  *  SQLGetInfo - SQL_ALTER_DOMAIN
883  */
884 #if (ODBCVER >= 0x0300)
885 #define SQL_AD_CONSTRAINT_NAME_DEFINITION   0x00000001L
886 #define SQL_AD_ADD_DOMAIN_CONSTRAINT        0x00000002L
887 #define SQL_AD_DROP_DOMAIN_CONSTRAINT       0x00000004L
888 #define SQL_AD_ADD_DOMAIN_DEFAULT       0x00000008L
889 #define SQL_AD_DROP_DOMAIN_DEFAULT      0x00000010L
890 #define SQL_AD_ADD_CONSTRAINT_INITIALLY_DEFERRED    0x00000020L
891 #define SQL_AD_ADD_CONSTRAINT_INITIALLY_IMMEDIATE   0x00000040L
892 #define SQL_AD_ADD_CONSTRAINT_DEFERRABLE    0x00000080L
893 #define SQL_AD_ADD_CONSTRAINT_NON_DEFERRABLE    0x00000100L
894 #endif  /* ODBCVER >= 0x0300 */
895 
896 
897 /*
898  *  SQLGetInfo - SQL_ALTER_TABLE
899  */
900 #if (ODBCVER >= 0x0300)
901 /*
902     * The following 5 bitmasks are defined in sql.h
903  *
904  * #define SQL_AT_ADD_COLUMN            0x00000001L
905  * #define SQL_AT_DROP_COLUMN           0x00000002L
906  * #define SQL_AT_ADD_CONSTRAINT        0x00000008L
907  */
908 #define SQL_AT_ADD_COLUMN_SINGLE        0x00000020L
909 #define SQL_AT_ADD_COLUMN_DEFAULT       0x00000040L
910 #define SQL_AT_ADD_COLUMN_COLLATION     0x00000080L
911 #define SQL_AT_SET_COLUMN_DEFAULT       0x00000100L
912 #define SQL_AT_DROP_COLUMN_DEFAULT      0x00000200L
913 #define SQL_AT_DROP_COLUMN_CASCADE      0x00000400L
914 #define SQL_AT_DROP_COLUMN_RESTRICT     0x00000800L
915 #define SQL_AT_ADD_TABLE_CONSTRAINT     0x00001000L
916 #define SQL_AT_DROP_TABLE_CONSTRAINT_CASCADE    0x00002000L
917 #define SQL_AT_DROP_TABLE_CONSTRAINT_RESTRICT   0x00004000L
918 #define SQL_AT_CONSTRAINT_NAME_DEFINITION   0x00008000L
919 #define SQL_AT_CONSTRAINT_INITIALLY_DEFERRED    0x00010000L
920 #define SQL_AT_CONSTRAINT_INITIALLY_IMMEDIATE   0x00020000L
921 #define SQL_AT_CONSTRAINT_DEFERRABLE        0x00040000L
922 #define SQL_AT_CONSTRAINT_NON_DEFERRABLE    0x00080000L
923 #endif  /* ODBCVER >= 0x0300 */
924 
925 
926 /*
927  *  SQLGetInfo - SQL_ASYNC_MODE
928  */
929 #if (ODBCVER >= 0x0300)
930 #define SQL_AM_NONE             0
931 #define SQL_AM_CONNECTION           1
932 #define SQL_AM_STATEMENT            2
933 #endif  /* ODBCVER >= 0x0300 */
934 
935 
936 /*
937  *  SQLGetInfo - SQL_BATCH_ROW_COUNT
938  */
939 #if (ODBCVER >= 0x0300)
940 #define SQL_BRC_PROCEDURES          0x0000001
941 #define SQL_BRC_EXPLICIT            0x0000002
942 #define SQL_BRC_ROLLED_UP           0x0000004
943 #endif  /* ODBCVER >= 0x0300 */
944 
945 
946 /*
947  *  SQLGetInfo - SQL_BATCH_SUPPORT
948  */
949 #if (ODBCVER >= 0x0300)
950 #define SQL_BS_SELECT_EXPLICIT          0x00000001L
951 #define SQL_BS_ROW_COUNT_EXPLICIT       0x00000002L
952 #define SQL_BS_SELECT_PROC          0x00000004L
953 #define SQL_BS_ROW_COUNT_PROC           0x00000008L
954 #endif  /* ODBCVER >= 0x0300 */
955 
956 
957 /*
958  *  SQLGetInfo - SQL_BOOKMARK_PERSISTENCE
959  */
960 #define SQL_BP_CLOSE                0x00000001L
961 #define SQL_BP_DELETE               0x00000002L
962 #define SQL_BP_DROP             0x00000004L
963 #define SQL_BP_TRANSACTION          0x00000008L
964 #define SQL_BP_UPDATE               0x00000010L
965 #define SQL_BP_OTHER_HSTMT          0x00000020L
966 #define SQL_BP_SCROLL               0x00000040L
967 
968 
969 /*
970  *  SQLGetInfo - SQL_CATALOG_LOCATION
971  */
972 #if (ODBCVER >= 0x0300)
973 #define SQL_CL_START                SQL_QL_START
974 #define SQL_CL_END              SQL_QL_END
975 #endif  /* ODBCVER >= 0x0300 */
976 
977 
978 /*
979  *  SQLGetInfo - SQL_CATALOG_USAGE
980  */
981 #if (ODBCVER >= 0x0300)
982 #define SQL_CU_DML_STATEMENTS           SQL_QU_DML_STATEMENTS
983 #define SQL_CU_PROCEDURE_INVOCATION     SQL_QU_PROCEDURE_INVOCATION
984 #define SQL_CU_TABLE_DEFINITION         SQL_QU_TABLE_DEFINITION
985 #define SQL_CU_INDEX_DEFINITION         SQL_QU_INDEX_DEFINITION
986 #define SQL_CU_PRIVILEGE_DEFINITION     SQL_QU_PRIVILEGE_DEFINITION
987 #endif  /* ODBCVER >= 0x0300 */
988 
989 
990 /*
991  *  SQLGetInfo - SQL_CONCAT_NULL_BEHAVIOR
992  */
993 #define SQL_CB_NULL             0x0000
994 #define SQL_CB_NON_NULL             0x0001
995 
996 
997 /*
998  *  SQLGetInfo - SQL_CONVERT_* bitmask values
999  */
1000 #define SQL_CVT_CHAR                0x00000001L
1001 #define SQL_CVT_NUMERIC             0x00000002L
1002 #define SQL_CVT_DECIMAL             0x00000004L
1003 #define SQL_CVT_INTEGER             0x00000008L
1004 #define SQL_CVT_SMALLINT            0x00000010L
1005 #define SQL_CVT_FLOAT               0x00000020L
1006 #define SQL_CVT_REAL                0x00000040L
1007 #define SQL_CVT_DOUBLE              0x00000080L
1008 #define SQL_CVT_VARCHAR             0x00000100L
1009 #define SQL_CVT_LONGVARCHAR         0x00000200L
1010 #define SQL_CVT_BINARY              0x00000400L
1011 #define SQL_CVT_VARBINARY           0x00000800L
1012 #define SQL_CVT_BIT             0x00001000L
1013 #define SQL_CVT_TINYINT             0x00002000L
1014 #define SQL_CVT_BIGINT              0x00004000L
1015 #define SQL_CVT_DATE                0x00008000L
1016 #define SQL_CVT_TIME                0x00010000L
1017 #define SQL_CVT_TIMESTAMP           0x00020000L
1018 #define SQL_CVT_LONGVARBINARY           0x00040000L
1019 #if (ODBCVER >= 0x0300)
1020 #define SQL_CVT_INTERVAL_YEAR_MONTH     0x00080000L
1021 #define SQL_CVT_INTERVAL_DAY_TIME       0x00100000L
1022 #define SQL_CVT_WCHAR               0x00200000L
1023 #define SQL_CVT_WLONGVARCHAR            0x00400000L
1024 #define SQL_CVT_WVARCHAR            0x00800000L
1025 #endif  /* ODBCVER >= 0x0300 */
1026 
1027 
1028 /*
1029  *  SQLGetInfo - SQL_CONVERT_FUNCTIONS
1030  */
1031 #define SQL_FN_CVT_CONVERT          0x00000001L
1032 #if (ODBCVER >= 0x0300)
1033 #define SQL_FN_CVT_CAST             0x00000002L
1034 #endif  /* ODBCVER >= 0x0300 */
1035 
1036 
1037 /*
1038  *  SQLGetInfo - SQL_CORRELATION_NAME
1039  */
1040 #define SQL_CN_NONE             0x0000
1041 #define SQL_CN_DIFFERENT            0x0001
1042 #define SQL_CN_ANY              0x0002
1043 
1044 
1045 /*
1046  *  SQLGetInfo - SQL_CREATE_ASSERTION
1047  */
1048 #if (ODBCVER >= 0x0300)
1049 #define SQL_CA_CREATE_ASSERTION         0x00000001L
1050 #define SQL_CA_CONSTRAINT_INITIALLY_DEFERRED    0x00000010L
1051 #define SQL_CA_CONSTRAINT_INITIALLY_IMMEDIATE   0x00000020L
1052 #define SQL_CA_CONSTRAINT_DEFERRABLE        0x00000040L
1053 #define SQL_CA_CONSTRAINT_NON_DEFERRABLE    0x00000080L
1054 #endif  /* ODBCVER >= 0x0300 */
1055 
1056 
1057 /*
1058  *  SQLGetInfo - SQL_CREATE_CHARACTER_SET
1059  */
1060 #if (ODBCVER >= 0x0300)
1061 #define SQL_CCS_CREATE_CHARACTER_SET        0x00000001L
1062 #define SQL_CCS_COLLATE_CLAUSE          0x00000002L
1063 #define SQL_CCS_LIMITED_COLLATION       0x00000004L
1064 #endif  /* ODBCVER >= 0x0300 */
1065 
1066 
1067 /*
1068  *  SQLGetInfo - SQL_CREATE_COLLATION
1069  */
1070 #if (ODBCVER >= 0x0300)
1071 #define SQL_CCOL_CREATE_COLLATION       0x00000001L
1072 #endif  /* ODBCVER >= 0x0300 */
1073 
1074 
1075 /*
1076  *  SQLGetInfo - SQL_CREATE_DOMAIN
1077  */
1078 #if (ODBCVER >= 0x0300)
1079 #define SQL_CDO_CREATE_DOMAIN           0x00000001L
1080 #define SQL_CDO_DEFAULT             0x00000002L
1081 #define SQL_CDO_CONSTRAINT          0x00000004L
1082 #define SQL_CDO_COLLATION           0x00000008L
1083 #define SQL_CDO_CONSTRAINT_NAME_DEFINITION  0x00000010L
1084 #define SQL_CDO_CONSTRAINT_INITIALLY_DEFERRED   0x00000020L
1085 #define SQL_CDO_CONSTRAINT_INITIALLY_IMMEDIATE  0x00000040L
1086 #define SQL_CDO_CONSTRAINT_DEFERRABLE       0x00000080L
1087 #define SQL_CDO_CONSTRAINT_NON_DEFERRABLE   0x00000100L
1088 #endif  /* ODBCVER >= 0x0300 */
1089 
1090 
1091 /*
1092  *  SQLGetInfo - SQL_CREATE_SCHEMA
1093  */
1094 #if (ODBCVER >= 0x0300)
1095 #define SQL_CS_CREATE_SCHEMA            0x00000001L
1096 #define SQL_CS_AUTHORIZATION            0x00000002L
1097 #define SQL_CS_DEFAULT_CHARACTER_SET        0x00000004L
1098 #endif  /* ODBCVER >= 0x0300 */
1099 
1100 
1101 /*
1102  *  SQLGetInfo - SQL_CREATE_TABLE
1103  */
1104 #if (ODBCVER >= 0x0300)
1105 #define SQL_CT_CREATE_TABLE         0x00000001L
1106 #define SQL_CT_COMMIT_PRESERVE          0x00000002L
1107 #define SQL_CT_COMMIT_DELETE            0x00000004L
1108 #define SQL_CT_GLOBAL_TEMPORARY         0x00000008L
1109 #define SQL_CT_LOCAL_TEMPORARY          0x00000010L
1110 #define SQL_CT_CONSTRAINT_INITIALLY_DEFERRED    0x00000020L
1111 #define SQL_CT_CONSTRAINT_INITIALLY_IMMEDIATE   0x00000040L
1112 #define SQL_CT_CONSTRAINT_DEFERRABLE        0x00000080L
1113 #define SQL_CT_CONSTRAINT_NON_DEFERRABLE    0x00000100L
1114 #define SQL_CT_COLUMN_CONSTRAINT        0x00000200L
1115 #define SQL_CT_COLUMN_DEFAULT           0x00000400L
1116 #define SQL_CT_COLUMN_COLLATION         0x00000800L
1117 #define SQL_CT_TABLE_CONSTRAINT         0x00001000L
1118 #define SQL_CT_CONSTRAINT_NAME_DEFINITION   0x00002000L
1119 #endif  /* ODBCVER >= 0x0300 */
1120 
1121 
1122 /*
1123  *  SQLGetInfo - SQL_CREATE_TRANSLATION
1124  */
1125 #if (ODBCVER >= 0x0300)
1126 #define SQL_CTR_CREATE_TRANSLATION      0x00000001L
1127 #endif  /* ODBCVER >= 0x0300 */
1128 
1129 
1130 /*
1131  *  SQLGetInfo - SQL_CREATE_VIEW
1132  */
1133 #define SQL_CV_CREATE_VIEW          0x00000001L
1134 #define SQL_CV_CHECK_OPTION         0x00000002L
1135 #define SQL_CV_CASCADED             0x00000004L
1136 #define SQL_CV_LOCAL                0x00000008L
1137 
1138 
1139 /*
1140  *  SQLGetInfo - SQL_DATETIME_LITERALS
1141  */
1142 #if (ODBCVER >= 0x0300)
1143 #define SQL_DL_SQL92_DATE           0x00000001L
1144 #define SQL_DL_SQL92_TIME           0x00000002L
1145 #define SQL_DL_SQL92_TIMESTAMP          0x00000004L
1146 #define SQL_DL_SQL92_INTERVAL_YEAR      0x00000008L
1147 #define SQL_DL_SQL92_INTERVAL_MONTH     0x00000010L
1148 #define SQL_DL_SQL92_INTERVAL_DAY       0x00000020L
1149 #define SQL_DL_SQL92_INTERVAL_HOUR      0x00000040L
1150 #define SQL_DL_SQL92_INTERVAL_MINUTE        0x00000080L
1151 #define SQL_DL_SQL92_INTERVAL_SECOND        0x00000100L
1152 #define SQL_DL_SQL92_INTERVAL_YEAR_TO_MONTH 0x00000200L
1153 #define SQL_DL_SQL92_INTERVAL_DAY_TO_HOUR   0x00000400L
1154 #define SQL_DL_SQL92_INTERVAL_DAY_TO_MINUTE 0x00000800L
1155 #define SQL_DL_SQL92_INTERVAL_DAY_TO_SECOND 0x00001000L
1156 #define SQL_DL_SQL92_INTERVAL_HOUR_TO_MINUTE    0x00002000L
1157 #define SQL_DL_SQL92_INTERVAL_HOUR_TO_SECOND    0x00004000L
1158 #define SQL_DL_SQL92_INTERVAL_MINUTE_TO_SECOND  0x00008000L
1159 #endif  /* ODBCVER >= 0x0300 */
1160 
1161 
1162 /*
1163  *  SQLGetInfo - SQL_DDL_INDEX
1164  */
1165 #if (ODBCVER >= 0x0300)
1166 #define SQL_DI_CREATE_INDEX         0x00000001L
1167 #define SQL_DI_DROP_INDEX           0x00000002L
1168 #endif  /* ODBCVER >= 0x0300 */
1169 
1170 
1171 /*
1172  *  SQLGetInfo - SQL_DROP_ASSERTION
1173  */
1174 #if (ODBCVER >= 0x0300)
1175 #define SQL_DA_DROP_ASSERTION           0x00000001L
1176 #endif  /* ODBCVER >= 0x0300 */
1177 
1178 
1179 /*
1180  *  SQLGetInfo - SQL_DROP_CHARACTER_SET
1181  */
1182 #if (ODBCVER >= 0x0300)
1183 #define SQL_DCS_DROP_CHARACTER_SET      0x00000001L
1184 #endif  /* ODBCVER >= 0x0300 */
1185 
1186 
1187 /*
1188  *  SQLGetInfo - SQL_DROP_COLLATION
1189  */
1190 #if (ODBCVER >= 0x0300)
1191 #define SQL_DC_DROP_COLLATION           0x00000001L
1192 #endif  /* ODBCVER >= 0x0300 */
1193 
1194 
1195 /*
1196  *  SQLGetInfo - SQL_DROP_DOMAIN
1197  */
1198 #if (ODBCVER >= 0x0300)
1199 #define SQL_DD_DROP_DOMAIN          0x00000001L
1200 #define SQL_DD_RESTRICT             0x00000002L
1201 #define SQL_DD_CASCADE              0x00000004L
1202 #endif  /* ODBCVER >= 0x0300 */
1203 
1204 
1205 /*
1206  *  SQLGetInfo - SQL_DROP_SCHEMA
1207  */
1208 #if (ODBCVER >= 0x0300)
1209 #define SQL_DS_DROP_SCHEMA          0x00000001L
1210 #define SQL_DS_RESTRICT             0x00000002L
1211 #define SQL_DS_CASCADE              0x00000004L
1212 #endif  /* ODBCVER >= 0x0300 */
1213 
1214 
1215 /*
1216  *  SQLGetInfo - SQL_DROP_TABLE
1217  */
1218 #if (ODBCVER >= 0x0300)
1219 #define SQL_DT_DROP_TABLE           0x00000001L
1220 #define SQL_DT_RESTRICT             0x00000002L
1221 #define SQL_DT_CASCADE              0x00000004L
1222 #endif  /* ODBCVER >= 0x0300 */
1223 
1224 
1225 /*
1226  *  SQLGetInfo - SQL_DROP_TRANSLATION
1227  */
1228 #if (ODBCVER >= 0x0300)
1229 #define SQL_DTR_DROP_TRANSLATION        0x00000001L
1230 #endif  /* ODBCVER >= 0x0300 */
1231 
1232 
1233 /*
1234  *  SQLGetInfo - SQL_DROP_VIEW
1235  */
1236 #if (ODBCVER >= 0x0300)
1237 #define SQL_DV_DROP_VIEW            0x00000001L
1238 #define SQL_DV_RESTRICT             0x00000002L
1239 #define SQL_DV_CASCADE              0x00000004L
1240 #endif  /* ODBCVER >= 0x0300 */
1241 
1242 
1243 /*
1244  *  SQLGetInfo - SQL_DTC_TRANSITION_COST
1245  */
1246 #define SQL_DTC_ENLIST_EXPENSIVE        0x00000001L
1247 #define SQL_DTC_UNENLIST_EXPENSIVE      0x00000002L
1248 
1249 
1250 /*
1251  *  SQLGetInfo - SQL_DYNAMIC_CURSOR_ATTRIBUTES1
1252  *  SQLGetInfo - SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES1
1253  *  SQLGetInfo - SQL_KEYSET_CURSOR_ATTRIBUTES1
1254  *  SQLGetInfo - SQL_STATIC_CURSOR_ATTRIBUTES1
1255  */
1256 /*
1257  *  SQLFetchScroll - FetchOrientation
1258  */
1259 #if (ODBCVER >= 0x0300)
1260 #define SQL_CA1_NEXT                0x00000001L
1261 #define SQL_CA1_ABSOLUTE            0x00000002L
1262 #define SQL_CA1_RELATIVE            0x00000004L
1263 #define SQL_CA1_BOOKMARK            0x00000008L
1264 #endif  /* ODBCVER >= 0x0300 */
1265 
1266 
1267 /*
1268  *  SQLSetPos - LockType
1269  */
1270 #if (ODBCVER >= 0x0300)
1271 #define SQL_CA1_LOCK_NO_CHANGE          0x00000040L
1272 #define SQL_CA1_LOCK_EXCLUSIVE          0x00000080L
1273 #define SQL_CA1_LOCK_UNLOCK         0x00000100L
1274 #endif  /* ODBCVER >= 0x0300 */
1275 
1276 
1277 /*
1278  *  SQLSetPos Operations
1279  */
1280 #if (ODBCVER >= 0x0300)
1281 #define SQL_CA1_POS_POSITION            0x00000200L
1282 #define SQL_CA1_POS_UPDATE          0x00000400L
1283 #define SQL_CA1_POS_DELETE          0x00000800L
1284 #define SQL_CA1_POS_REFRESH         0x00001000L
1285 #endif  /* ODBCVER >= 0x0300 */
1286 
1287 
1288 /*
1289  *  positioned updates and deletes
1290  */
1291 #if (ODBCVER >= 0x0300)
1292 #define SQL_CA1_POSITIONED_UPDATE       0x00002000L
1293 #define SQL_CA1_POSITIONED_DELETE       0x00004000L
1294 #define SQL_CA1_SELECT_FOR_UPDATE       0x00008000L
1295 #endif  /* ODBCVER >= 0x0300 */
1296 
1297 
1298 /*
1299  *  SQLBulkOperations operations
1300  */
1301 #if (ODBCVER >= 0x0300)
1302 #define SQL_CA1_BULK_ADD            0x00010000L
1303 #define SQL_CA1_BULK_UPDATE_BY_BOOKMARK     0x00020000L
1304 #define SQL_CA1_BULK_DELETE_BY_BOOKMARK     0x00040000L
1305 #define SQL_CA1_BULK_FETCH_BY_BOOKMARK      0x00080000L
1306 #endif  /* ODBCVER >= 0x0300 */
1307 
1308 
1309 /*
1310  *  SQLGetInfo - SQL_DYNAMIC_CURSOR_ATTRIBUTES2
1311  *  SQLGetInfo - SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES2
1312  *  SQLGetInfo - SQL_KEYSET_CURSOR_ATTRIBUTES2
1313  *  SQLGetInfo - SQL_STATIC_CURSOR_ATTRIBUTES2
1314  */
1315 /*
1316  *  SQL_ATTR_SCROLL_CONCURRENCY
1317  */
1318 #if (ODBCVER >= 0x0300)
1319 #define SQL_CA2_READ_ONLY_CONCURRENCY       0x00000001L
1320 #define SQL_CA2_LOCK_CONCURRENCY        0x00000002L
1321 #define SQL_CA2_OPT_ROWVER_CONCURRENCY      0x00000004L
1322 #define SQL_CA2_OPT_VALUES_CONCURRENCY      0x00000008L
1323 #endif  /* ODBCVER >= 0x0300 */
1324 
1325 
1326 /*
1327  *  sensitivity of the cursor to its own inserts, deletes, and updates
1328  */
1329 #if (ODBCVER >= 0x0300)
1330 #define SQL_CA2_SENSITIVITY_ADDITIONS       0x00000010L
1331 #define SQL_CA2_SENSITIVITY_DELETIONS       0x00000020L
1332 #define SQL_CA2_SENSITIVITY_UPDATES     0x00000040L
1333 #endif  /* ODBCVER >= 0x0300 */
1334 
1335 
1336 /*
1337  *  SQL_ATTR_MAX_ROWS
1338  */
1339 #if (ODBCVER >= 0x0300)
1340 #define SQL_CA2_MAX_ROWS_SELECT         0x00000080L
1341 #define SQL_CA2_MAX_ROWS_INSERT         0x00000100L
1342 #define SQL_CA2_MAX_ROWS_DELETE         0x00000200L
1343 #define SQL_CA2_MAX_ROWS_UPDATE         0x00000400L
1344 #define SQL_CA2_MAX_ROWS_CATALOG        0x00000800L
1345 #define SQL_CA2_MAX_ROWS_AFFECTS_ALL        (SQL_CA2_MAX_ROWS_SELECT | \
1346                          SQL_CA2_MAX_ROWS_INSERT | \
1347                          SQL_CA2_MAX_ROWS_DELETE | \
1348                          SQL_CA2_MAX_ROWS_UPDATE | \
1349                          SQL_CA2_MAX_ROWS_CATALOG)
1350 #endif  /* ODBCVER >= 0x0300 */
1351 
1352 
1353 /*
1354  *  SQL_DIAG_CURSOR_ROW_COUNT
1355  */
1356 #if (ODBCVER >= 0x0300)
1357 #define SQL_CA2_CRC_EXACT           0x00001000L
1358 #define SQL_CA2_CRC_APPROXIMATE         0x00002000L
1359 #endif  /* ODBCVER >= 0x0300 */
1360 
1361 
1362 /*
1363  *  the kinds of positioned statements that can be simulated
1364  */
1365 #if (ODBCVER >= 0x0300)
1366 #define SQL_CA2_SIMULATE_NON_UNIQUE     0x00004000L
1367 #define SQL_CA2_SIMULATE_TRY_UNIQUE     0x00008000L
1368 #define SQL_CA2_SIMULATE_UNIQUE         0x00010000L
1369 #endif  /* ODBCVER >= 0x0300 */
1370 
1371 
1372 /*
1373  *  SQLGetInfo - SQL_FETCH_DIRECTION
1374  */
1375 #if (ODBCVER < 0x0300)
1376 #define SQL_FD_FETCH_RESUME         0x00000040L
1377 #endif  /* ODBCVER < 0x0300 */
1378 #define SQL_FD_FETCH_BOOKMARK           0x00000080L
1379 
1380 
1381 /*
1382  *  SQLGetInfo - SQL_FILE_USAGE
1383  */
1384 #define SQL_FILE_NOT_SUPPORTED          0x0000
1385 #define SQL_FILE_TABLE              0x0001
1386 #define SQL_FILE_QUALIFIER          0x0002
1387 #define SQL_FILE_CATALOG            SQL_FILE_QUALIFIER
1388 
1389 
1390 /*
1391  *  SQLGetInfo - SQL_GETDATA_EXTENSIONS
1392  */
1393 #define SQL_GD_BLOCK                0x00000004L
1394 #define SQL_GD_BOUND                0x00000008L
1395 
1396 
1397 /*
1398  *  SQLGetInfo - SQL_GROUP_BY
1399  */
1400 #define SQL_GB_NOT_SUPPORTED            0x0000
1401 #define SQL_GB_GROUP_BY_EQUALS_SELECT       0x0001
1402 #define SQL_GB_GROUP_BY_CONTAINS_SELECT     0x0002
1403 #define SQL_GB_NO_RELATION          0x0003
1404 #if (ODBCVER >= 0x0300)
1405 #define SQL_GB_COLLATE              0x0004
1406 #endif  /* ODBCVER >= 0x0300 */
1407 
1408 
1409 /*
1410  *  SQLGetInfo - SQL_INDEX_KEYWORDS
1411  */
1412 #if (ODBCVER >= 0x0300)
1413 #define SQL_IK_NONE             0x00000000L
1414 #define SQL_IK_ASC              0x00000001L
1415 #define SQL_IK_DESC             0x00000002L
1416 #define SQL_IK_ALL              (SQL_IK_ASC | SQL_IK_DESC)
1417 #endif  /* ODBCVER >= 0x0300 */
1418 
1419 
1420 /*
1421  *  SQLGetInfo - SQL_INFO_SCHEMA_VIEWS
1422  */
1423 #if (ODBCVER >= 0x0300)
1424 #define SQL_ISV_ASSERTIONS          0x00000001L
1425 #define SQL_ISV_CHARACTER_SETS          0x00000002L
1426 #define SQL_ISV_CHECK_CONSTRAINTS       0x00000004L
1427 #define SQL_ISV_COLLATIONS          0x00000008L
1428 #define SQL_ISV_COLUMN_DOMAIN_USAGE     0x00000010L
1429 #define SQL_ISV_COLUMN_PRIVILEGES       0x00000020L
1430 #define SQL_ISV_COLUMNS             0x00000040L
1431 #define SQL_ISV_CONSTRAINT_COLUMN_USAGE     0x00000080L
1432 #define SQL_ISV_CONSTRAINT_TABLE_USAGE      0x00000100L
1433 #define SQL_ISV_DOMAIN_CONSTRAINTS      0x00000200L
1434 #define SQL_ISV_DOMAINS             0x00000400L
1435 #define SQL_ISV_KEY_COLUMN_USAGE        0x00000800L
1436 #define SQL_ISV_REFERENTIAL_CONSTRAINTS     0x00001000L
1437 #define SQL_ISV_SCHEMATA            0x00002000L
1438 #define SQL_ISV_SQL_LANGUAGES           0x00004000L
1439 #define SQL_ISV_TABLE_CONSTRAINTS       0x00008000L
1440 #define SQL_ISV_TABLE_PRIVILEGES        0x00010000L
1441 #define SQL_ISV_TABLES              0x00020000L
1442 #define SQL_ISV_TRANSLATIONS            0x00040000L
1443 #define SQL_ISV_USAGE_PRIVILEGES        0x00080000L
1444 #define SQL_ISV_VIEW_COLUMN_USAGE       0x00100000L
1445 #define SQL_ISV_VIEW_TABLE_USAGE        0x00200000L
1446 #define SQL_ISV_VIEWS               0x00400000L
1447 #endif  /* ODBCVER >= 0x0300 */
1448 
1449 
1450 /*
1451  *  SQLGetInfo - SQL_INSERT_STATEMENT
1452  */
1453 #if (ODBCVER >= 0x0300)
1454 #define SQL_IS_INSERT_LITERALS          0x00000001L
1455 #define SQL_IS_INSERT_SEARCHED          0x00000002L
1456 #define SQL_IS_SELECT_INTO          0x00000004L
1457 #endif  /* ODBCVER >= 0x0300 */
1458 
1459 
1460 /*
1461  *  SQLGetInfo - SQL_LOCK_TYPES
1462  */
1463 #define SQL_LCK_NO_CHANGE           0x00000001L
1464 #define SQL_LCK_EXCLUSIVE           0x00000002L
1465 #define SQL_LCK_UNLOCK              0x00000004L
1466 
1467 
1468 /*
1469  *  SQLGetInfo - SQL_POS_OPERATIONS
1470  */
1471 #define SQL_POS_POSITION            0x00000001L
1472 #define SQL_POS_REFRESH             0x00000002L
1473 #define SQL_POS_UPDATE              0x00000004L
1474 #define SQL_POS_DELETE              0x00000008L
1475 #define SQL_POS_ADD             0x00000010L
1476 
1477 
1478 /*
1479  *  SQLGetInfo - SQL_NON_NULLABLE_COLUMNS
1480  */
1481 #define SQL_NNC_NULL                0x0000
1482 #define SQL_NNC_NON_NULL            0x0001
1483 
1484 
1485 /*
1486  *  SQLGetInfo - SQL_NULL_COLLATION
1487  */
1488 #define SQL_NC_START                0x0002
1489 #define SQL_NC_END              0x0004
1490 
1491 
1492 /*
1493  *  SQLGetInfo - SQL_NUMERIC_FUNCTIONS
1494  */
1495 #define SQL_FN_NUM_ABS              0x00000001L
1496 #define SQL_FN_NUM_ACOS             0x00000002L
1497 #define SQL_FN_NUM_ASIN             0x00000004L
1498 #define SQL_FN_NUM_ATAN             0x00000008L
1499 #define SQL_FN_NUM_ATAN2            0x00000010L
1500 #define SQL_FN_NUM_CEILING          0x00000020L
1501 #define SQL_FN_NUM_COS              0x00000040L
1502 #define SQL_FN_NUM_COT              0x00000080L
1503 #define SQL_FN_NUM_EXP              0x00000100L
1504 #define SQL_FN_NUM_FLOOR            0x00000200L
1505 #define SQL_FN_NUM_LOG              0x00000400L
1506 #define SQL_FN_NUM_MOD              0x00000800L
1507 #define SQL_FN_NUM_SIGN             0x00001000L
1508 #define SQL_FN_NUM_SIN              0x00002000L
1509 #define SQL_FN_NUM_SQRT             0x00004000L
1510 #define SQL_FN_NUM_TAN              0x00008000L
1511 #define SQL_FN_NUM_PI               0x00010000L
1512 #define SQL_FN_NUM_RAND             0x00020000L
1513 #define SQL_FN_NUM_DEGREES          0x00040000L
1514 #define SQL_FN_NUM_LOG10            0x00080000L
1515 #define SQL_FN_NUM_POWER            0x00100000L
1516 #define SQL_FN_NUM_RADIANS          0x00200000L
1517 #define SQL_FN_NUM_ROUND            0x00400000L
1518 #define SQL_FN_NUM_TRUNCATE         0x00800000L
1519 
1520 
1521 /*
1522  *  SQLGetInfo - SQL_ODBC_API_CONFORMANCE
1523  */
1524 #define SQL_OAC_NONE                0x0000
1525 #define SQL_OAC_LEVEL1              0x0001
1526 #define SQL_OAC_LEVEL2              0x0002
1527 
1528 
1529 /*
1530  *  SQLGetInfo - SQL_ODBC_INTERFACE_CONFORMANCE
1531  */
1532 #if (ODBCVER >= 0x0300)
1533 #define SQL_OIC_CORE                1UL
1534 #define SQL_OIC_LEVEL1              2UL
1535 #define SQL_OIC_LEVEL2              3UL
1536 #endif  /* ODBCVER >= 0x0300 */
1537 
1538 
1539 /*
1540  *  SQLGetInfo - SQL_ODBC_SAG_CLI_CONFORMANCE
1541  */
1542 #define SQL_OSCC_NOT_COMPLIANT          0x0000
1543 #define SQL_OSCC_COMPLIANT          0x0001
1544 
1545 
1546 /*
1547  *  SQLGetInfo - SQL_ODBC_SQL_CONFORMANCE
1548  */
1549 #define SQL_OSC_MINIMUM             0x0000
1550 #define SQL_OSC_CORE                0x0001
1551 #define SQL_OSC_EXTENDED            0x0002
1552 
1553 
1554 /*
1555  *  SQLGetInfo - SQL_OWNER_USAGE
1556  */
1557 #define SQL_OU_DML_STATEMENTS           0x00000001L
1558 #define SQL_OU_PROCEDURE_INVOCATION     0x00000002L
1559 #define SQL_OU_TABLE_DEFINITION         0x00000004L
1560 #define SQL_OU_INDEX_DEFINITION         0x00000008L
1561 #define SQL_OU_PRIVILEGE_DEFINITION     0x00000010L
1562 
1563 
1564 /*
1565  *  SQLGetInfo - SQL_PARAM_ARRAY_ROW_COUNTS
1566  */
1567 #if (ODBCVER >= 0x0300)
1568 #define SQL_PARC_BATCH              1
1569 #define SQL_PARC_NO_BATCH           2
1570 #endif  /* ODBCVER >= 0x0300 */
1571 
1572 
1573 /*
1574  *  SQLGetInfo - SQL_PARAM_ARRAY_SELECTS
1575  */
1576 #if (ODBCVER >= 0x0300)
1577 #define SQL_PAS_BATCH               1
1578 #define SQL_PAS_NO_BATCH            2
1579 #define SQL_PAS_NO_SELECT           3
1580 #endif  /* ODBCVER >= 0x0300 */
1581 
1582 
1583 /*
1584  *  SQLGetInfo - SQL_POSITIONED_STATEMENTS
1585  */
1586 #define SQL_PS_POSITIONED_DELETE        0x00000001L
1587 #define SQL_PS_POSITIONED_UPDATE        0x00000002L
1588 #define SQL_PS_SELECT_FOR_UPDATE        0x00000004L
1589 
1590 
1591 /*
1592  *  SQLGetInfo - SQL_QUALIFIER_LOCATION
1593  */
1594 #define SQL_QL_START                0x0001
1595 #define SQL_QL_END              0x0002
1596 
1597 
1598 /*
1599  *  SQLGetInfo - SQL_QUALIFIER_USAGE
1600  */
1601 #define SQL_QU_DML_STATEMENTS           0x00000001L
1602 #define SQL_QU_PROCEDURE_INVOCATION     0x00000002L
1603 #define SQL_QU_TABLE_DEFINITION         0x00000004L
1604 #define SQL_QU_INDEX_DEFINITION         0x00000008L
1605 #define SQL_QU_PRIVILEGE_DEFINITION     0x00000010L
1606 
1607 
1608 /*
1609  *  SQLGetInfo - SQL_SCHEMA_USAGE
1610  */
1611 #if (ODBCVER >= 0x0300)
1612 #define SQL_SU_DML_STATEMENTS           SQL_OU_DML_STATEMENTS
1613 #define SQL_SU_PROCEDURE_INVOCATION     SQL_OU_PROCEDURE_INVOCATION
1614 #define SQL_SU_TABLE_DEFINITION         SQL_OU_TABLE_DEFINITION
1615 #define SQL_SU_INDEX_DEFINITION         SQL_OU_INDEX_DEFINITION
1616 #define SQL_SU_PRIVILEGE_DEFINITION     SQL_OU_PRIVILEGE_DEFINITION
1617 #endif  /* ODBCVER >= 0x0300 */
1618 
1619 
1620 /*
1621  *  SQLGetInfo - SQL_SCROLL_OPTIONS
1622  */
1623 #define SQL_SO_FORWARD_ONLY         0x00000001L
1624 #define SQL_SO_KEYSET_DRIVEN            0x00000002L
1625 #define SQL_SO_DYNAMIC              0x00000004L
1626 #define SQL_SO_MIXED                0x00000008L
1627 #define SQL_SO_STATIC               0x00000010L
1628 
1629 
1630 /*
1631  *  SQLGetInfo - SQL_SQL_CONFORMANCE
1632  */
1633 #if (ODBCVER >= 0x0300)
1634 #define SQL_SC_SQL92_ENTRY          0x00000001L
1635 #define SQL_SC_FIPS127_2_TRANSITIONAL       0x00000002L
1636 #define SQL_SC_SQL92_INTERMEDIATE       0x00000004L
1637 #define SQL_SC_SQL92_FULL           0x00000008L
1638 #endif  /* ODBCVER >= 0x0300 */
1639 
1640 
1641 /*
1642  *  SQLGetInfo - SQL_SQL92_DATETIME_FUNCTIONS
1643  */
1644 #if (ODBCVER >= 0x0300)
1645 #define SQL_SDF_CURRENT_DATE            0x00000001L
1646 #define SQL_SDF_CURRENT_TIME            0x00000002L
1647 #define SQL_SDF_CURRENT_TIMESTAMP       0x00000004L
1648 #endif  /* ODBCVER >= 0x0300 */
1649 
1650 
1651 /*
1652  *  SQLGetInfo - SQL_SQL92_FOREIGN_KEY_DELETE_RULE
1653  */
1654 #if (ODBCVER >= 0x0300)
1655 #define SQL_SFKD_CASCADE            0x00000001L
1656 #define SQL_SFKD_NO_ACTION          0x00000002L
1657 #define SQL_SFKD_SET_DEFAULT            0x00000004L
1658 #define SQL_SFKD_SET_NULL           0x00000008L
1659 #endif  /* ODBCVER >= 0x0300 */
1660 
1661 
1662 /*
1663  *  SQLGetInfo - SQL_SQL92_FOREIGN_KEY_UPDATE_RULE
1664  */
1665 #if (ODBCVER >= 0x0300)
1666 #define SQL_SFKU_CASCADE            0x00000001L
1667 #define SQL_SFKU_NO_ACTION          0x00000002L
1668 #define SQL_SFKU_SET_DEFAULT            0x00000004L
1669 #define SQL_SFKU_SET_NULL           0x00000008L
1670 #endif  /* ODBCVER >= 0x0300 */
1671 
1672 
1673 /*
1674  *  SQLGetInfo - SQL_SQL92_GRANT
1675  */
1676 #if (ODBCVER >= 0x0300)
1677 #define SQL_SG_USAGE_ON_DOMAIN          0x00000001L
1678 #define SQL_SG_USAGE_ON_CHARACTER_SET       0x00000002L
1679 #define SQL_SG_USAGE_ON_COLLATION       0x00000004L
1680 #define SQL_SG_USAGE_ON_TRANSLATION     0x00000008L
1681 #define SQL_SG_WITH_GRANT_OPTION        0x00000010L
1682 #define SQL_SG_DELETE_TABLE         0x00000020L
1683 #define SQL_SG_INSERT_TABLE         0x00000040L
1684 #define SQL_SG_INSERT_COLUMN            0x00000080L
1685 #define SQL_SG_REFERENCES_TABLE         0x00000100L
1686 #define SQL_SG_REFERENCES_COLUMN        0x00000200L
1687 #define SQL_SG_SELECT_TABLE         0x00000400L
1688 #define SQL_SG_UPDATE_TABLE         0x00000800L
1689 #define SQL_SG_UPDATE_COLUMN            0x00001000L
1690 #endif  /* ODBCVER >= 0x0300 */
1691 
1692 
1693 /*
1694  *  SQLGetInfo - SQL_SQL92_NUMERIC_VALUE_FUNCTIONS
1695  */
1696 #if (ODBCVER >= 0x0300)
1697 #define SQL_SNVF_BIT_LENGTH         0x00000001L
1698 #define SQL_SNVF_CHAR_LENGTH            0x00000002L
1699 #define SQL_SNVF_CHARACTER_LENGTH       0x00000004L
1700 #define SQL_SNVF_EXTRACT            0x00000008L
1701 #define SQL_SNVF_OCTET_LENGTH           0x00000010L
1702 #define SQL_SNVF_POSITION           0x00000020L
1703 #endif  /* ODBCVER >= 0x0300 */
1704 
1705 
1706 /*
1707  *  SQLGetInfo - SQL_SQL92_PREDICATES
1708  */
1709 #if (ODBCVER >= 0x0300)
1710 #define SQL_SP_EXISTS               0x00000001L
1711 #define SQL_SP_ISNOTNULL            0x00000002L
1712 #define SQL_SP_ISNULL               0x00000004L
1713 #define SQL_SP_MATCH_FULL           0x00000008L
1714 #define SQL_SP_MATCH_PARTIAL            0x00000010L
1715 #define SQL_SP_MATCH_UNIQUE_FULL        0x00000020L
1716 #define SQL_SP_MATCH_UNIQUE_PARTIAL     0x00000040L
1717 #define SQL_SP_OVERLAPS             0x00000080L
1718 #define SQL_SP_UNIQUE               0x00000100L
1719 #define SQL_SP_LIKE             0x00000200L
1720 #define SQL_SP_IN               0x00000400L
1721 #define SQL_SP_BETWEEN              0x00000800L
1722 #define SQL_SP_COMPARISON           0x00001000L
1723 #define SQL_SP_QUANTIFIED_COMPARISON        0x00002000L
1724 #endif  /* ODBCVER >= 0x0300 */
1725 
1726 
1727 /*
1728  *  SQLGetInfo - SQL_SQL92_RELATIONAL_JOIN_OPERATORS
1729  */
1730 #if (ODBCVER >= 0x0300)
1731 #define SQL_SRJO_CORRESPONDING_CLAUSE       0x00000001L
1732 #define SQL_SRJO_CROSS_JOIN         0x00000002L
1733 #define SQL_SRJO_EXCEPT_JOIN            0x00000004L
1734 #define SQL_SRJO_FULL_OUTER_JOIN        0x00000008L
1735 #define SQL_SRJO_INNER_JOIN         0x00000010L
1736 #define SQL_SRJO_INTERSECT_JOIN         0x00000020L
1737 #define SQL_SRJO_LEFT_OUTER_JOIN        0x00000040L
1738 #define SQL_SRJO_NATURAL_JOIN           0x00000080L
1739 #define SQL_SRJO_RIGHT_OUTER_JOIN       0x00000100L
1740 #define SQL_SRJO_UNION_JOIN         0x00000200L
1741 #endif  /* ODBCVER >= 0x0300 */
1742 
1743 
1744 /*
1745  *  SQLGetInfo - SQL_SQL92_REVOKE
1746  */
1747 #if (ODBCVER >= 0x0300)
1748 #define SQL_SR_USAGE_ON_DOMAIN          0x00000001L
1749 #define SQL_SR_USAGE_ON_CHARACTER_SET       0x00000002L
1750 #define SQL_SR_USAGE_ON_COLLATION       0x00000004L
1751 #define SQL_SR_USAGE_ON_TRANSLATION     0x00000008L
1752 #define SQL_SR_GRANT_OPTION_FOR         0x00000010L
1753 #define SQL_SR_CASCADE              0x00000020L
1754 #define SQL_SR_RESTRICT             0x00000040L
1755 #define SQL_SR_DELETE_TABLE         0x00000080L
1756 #define SQL_SR_INSERT_TABLE         0x00000100L
1757 #define SQL_SR_INSERT_COLUMN            0x00000200L
1758 #define SQL_SR_REFERENCES_TABLE         0x00000400L
1759 #define SQL_SR_REFERENCES_COLUMN        0x00000800L
1760 #define SQL_SR_SELECT_TABLE         0x00001000L
1761 #define SQL_SR_UPDATE_TABLE         0x00002000L
1762 #define SQL_SR_UPDATE_COLUMN            0x00004000L
1763 #endif  /* ODBCVER >= 0x0300 */
1764 
1765 
1766 /*
1767  *  SQLGetInfo - SQL_SQL92_ROW_VALUE_CONSTRUCTOR
1768  */
1769 #if (ODBCVER >= 0x0300)
1770 #define SQL_SRVC_VALUE_EXPRESSION       0x00000001L
1771 #define SQL_SRVC_NULL               0x00000002L
1772 #define SQL_SRVC_DEFAULT            0x00000004L
1773 #define SQL_SRVC_ROW_SUBQUERY           0x00000008L
1774 #endif  /* ODBCVER >= 0x0300 */
1775 
1776 
1777 /*
1778  *  SQLGetInfo - SQL_SQL92_STRING_FUNCTIONS
1779  */
1780 #if (ODBCVER >= 0x0300)
1781 #define SQL_SSF_CONVERT             0x00000001L
1782 #define SQL_SSF_LOWER               0x00000002L
1783 #define SQL_SSF_UPPER               0x00000004L
1784 #define SQL_SSF_SUBSTRING           0x00000008L
1785 #define SQL_SSF_TRANSLATE           0x00000010L
1786 #define SQL_SSF_TRIM_BOTH           0x00000020L
1787 #define SQL_SSF_TRIM_LEADING            0x00000040L
1788 #define SQL_SSF_TRIM_TRAILING           0x00000080L
1789 #endif  /* ODBCVER >= 0x0300 */
1790 
1791 
1792 /*
1793  *  SQLGetInfo - SQL_SQL92_VALUE_EXPRESSIONS
1794  */
1795 #if (ODBCVER >= 0x0300)
1796 #define SQL_SVE_CASE                0x00000001L
1797 #define SQL_SVE_CAST                0x00000002L
1798 #define SQL_SVE_COALESCE            0x00000004L
1799 #define SQL_SVE_NULLIF              0x00000008L
1800 #endif  /* ODBCVER >= 0x0300 */
1801 
1802 
1803 /*
1804  *  SQLGetInfo - SQL_STANDARD_CLI_CONFORMANCE
1805  */
1806 #if (ODBCVER >= 0x0300)
1807 #define SQL_SCC_XOPEN_CLI_VERSION1      0x00000001L
1808 #define SQL_SCC_ISO92_CLI           0x00000002L
1809 #endif  /* ODBCVER >= 0x0300 */
1810 
1811 
1812 /*
1813  *  SQLGetInfo - SQL_STATIC_SENSITIVITY
1814  */
1815 #define SQL_SS_ADDITIONS            0x00000001L
1816 #define SQL_SS_DELETIONS            0x00000002L
1817 #define SQL_SS_UPDATES              0x00000004L
1818 
1819 
1820 /*
1821  *  SQLGetInfo - SQL_SUBQUERIES
1822  */
1823 #define SQL_SQ_COMPARISON           0x00000001L
1824 #define SQL_SQ_EXISTS               0x00000002L
1825 #define SQL_SQ_IN               0x00000004L
1826 #define SQL_SQ_QUANTIFIED           0x00000008L
1827 #define SQL_SQ_CORRELATED_SUBQUERIES        0x00000010L
1828 
1829 
1830 /*
1831  *  SQLGetInfo - SQL_SYSTEM_FUNCTIONS
1832  */
1833 #define SQL_FN_SYS_USERNAME         0x00000001L
1834 #define SQL_FN_SYS_DBNAME           0x00000002L
1835 #define SQL_FN_SYS_IFNULL           0x00000004L
1836 
1837 
1838 /*
1839  *  SQLGetInfo - SQL_STRING_FUNCTIONS
1840  */
1841 #define SQL_FN_STR_CONCAT           0x00000001L
1842 #define SQL_FN_STR_INSERT           0x00000002L
1843 #define SQL_FN_STR_LEFT             0x00000004L
1844 #define SQL_FN_STR_LTRIM            0x00000008L
1845 #define SQL_FN_STR_LENGTH           0x00000010L
1846 #define SQL_FN_STR_LOCATE           0x00000020L
1847 #define SQL_FN_STR_LCASE            0x00000040L
1848 #define SQL_FN_STR_REPEAT           0x00000080L
1849 #define SQL_FN_STR_REPLACE          0x00000100L
1850 #define SQL_FN_STR_RIGHT            0x00000200L
1851 #define SQL_FN_STR_RTRIM            0x00000400L
1852 #define SQL_FN_STR_SUBSTRING            0x00000800L
1853 #define SQL_FN_STR_UCASE            0x00001000L
1854 #define SQL_FN_STR_ASCII            0x00002000L
1855 #define SQL_FN_STR_CHAR             0x00004000L
1856 #define SQL_FN_STR_DIFFERENCE           0x00008000L
1857 #define SQL_FN_STR_LOCATE_2         0x00010000L
1858 #define SQL_FN_STR_SOUNDEX          0x00020000L
1859 #define SQL_FN_STR_SPACE            0x00040000L
1860 #if (ODBCVER >= 0x0300)
1861 #define SQL_FN_STR_BIT_LENGTH           0x00080000L
1862 #define SQL_FN_STR_CHAR_LENGTH          0x00100000L
1863 #define SQL_FN_STR_CHARACTER_LENGTH     0x00200000L
1864 #define SQL_FN_STR_OCTET_LENGTH         0x00400000L
1865 #define SQL_FN_STR_POSITION         0x00800000L
1866 #endif  /* ODBCVER >= 0x0300 */
1867 
1868 
1869 /*
1870  *  SQLGetInfo - SQL_TIMEDATE_ADD_INTERVALS
1871  *  SQLGetInfo - SQL_TIMEDATE_DIFF_INTERVALS
1872  */
1873 #define SQL_FN_TSI_FRAC_SECOND          0x00000001L
1874 #define SQL_FN_TSI_SECOND           0x00000002L
1875 #define SQL_FN_TSI_MINUTE           0x00000004L
1876 #define SQL_FN_TSI_HOUR             0x00000008L
1877 #define SQL_FN_TSI_DAY              0x00000010L
1878 #define SQL_FN_TSI_WEEK             0x00000020L
1879 #define SQL_FN_TSI_MONTH            0x00000040L
1880 #define SQL_FN_TSI_QUARTER          0x00000080L
1881 #define SQL_FN_TSI_YEAR             0x00000100L
1882 
1883 
1884 /*
1885  *  SQLGetInfo - SQL_TIMEDATE_FUNCTIONS
1886  */
1887 #define SQL_FN_TD_NOW               0x00000001L
1888 #define SQL_FN_TD_CURDATE           0x00000002L
1889 #define SQL_FN_TD_DAYOFMONTH            0x00000004L
1890 #define SQL_FN_TD_DAYOFWEEK         0x00000008L
1891 #define SQL_FN_TD_DAYOFYEAR         0x00000010L
1892 #define SQL_FN_TD_MONTH             0x00000020L
1893 #define SQL_FN_TD_QUARTER           0x00000040L
1894 #define SQL_FN_TD_WEEK              0x00000080L
1895 #define SQL_FN_TD_YEAR              0x00000100L
1896 #define SQL_FN_TD_CURTIME           0x00000200L
1897 #define SQL_FN_TD_HOUR              0x00000400L
1898 #define SQL_FN_TD_MINUTE            0x00000800L
1899 #define SQL_FN_TD_SECOND            0x00001000L
1900 #define SQL_FN_TD_TIMESTAMPADD          0x00002000L
1901 #define SQL_FN_TD_TIMESTAMPDIFF         0x00004000L
1902 #define SQL_FN_TD_DAYNAME           0x00008000L
1903 #define SQL_FN_TD_MONTHNAME         0x00010000L
1904 #if (ODBCVER >= 0x0300)
1905 #define SQL_FN_TD_CURRENT_DATE          0x00020000L
1906 #define SQL_FN_TD_CURRENT_TIME          0x00040000L
1907 #define SQL_FN_TD_CURRENT_TIMESTAMP     0x00080000L
1908 #define SQL_FN_TD_EXTRACT           0x00100000L
1909 #endif  /* ODBCVER >= 0x0300 */
1910 
1911 
1912 /*
1913  *  SQLGetInfo - SQL_TXN_ISOLATION_OPTION
1914  */
1915 #if (ODBCVER < 0x0300)
1916 #define SQL_TXN_VERSIONING          0x00000010L
1917 #endif  /* ODBCVER < 0x0300 */
1918 
1919 
1920 /*
1921  *  SQLGetInfo - SQL_UNION
1922  */
1923 #define SQL_U_UNION             0x00000001L
1924 #define SQL_U_UNION_ALL             0x00000002L
1925 
1926 
1927 /*
1928  *  SQLGetInfo - SQL_UNION_STATEMENT
1929  */
1930 #if (ODBCVER >= 0x0300)
1931 #define SQL_US_UNION                SQL_U_UNION
1932 #define SQL_US_UNION_ALL            SQL_U_UNION_ALL
1933 #endif  /* ODBCVER >= 0x0300 */
1934 
1935 
1936 /*
1937  *  SQLGetStmtAttr - ODBC 2.x attributes
1938  */
1939 #define SQL_QUERY_TIMEOUT           0
1940 #define SQL_MAX_ROWS                1
1941 #define SQL_NOSCAN              2
1942 #define SQL_MAX_LENGTH              3
1943 #define SQL_ASYNC_ENABLE            4
1944 #define SQL_BIND_TYPE               5
1945 #define SQL_CURSOR_TYPE             6
1946 #define SQL_CONCURRENCY             7
1947 #define SQL_KEYSET_SIZE             8
1948 #define SQL_ROWSET_SIZE             9
1949 #define SQL_SIMULATE_CURSOR         10
1950 #define SQL_RETRIEVE_DATA           11
1951 #define SQL_USE_BOOKMARKS           12
1952 #define SQL_GET_BOOKMARK            13
1953 #define SQL_ROW_NUMBER              14
1954 
1955 
1956 /*
1957  *  SQLGetStmtAttr - ODBC 3.x attributes
1958  */
1959 #if (ODBCVER >= 0x0300)
1960 #define SQL_ATTR_ASYNC_ENABLE           4
1961 #define SQL_ATTR_CONCURRENCY            SQL_CONCURRENCY
1962 #define SQL_ATTR_CURSOR_TYPE            SQL_CURSOR_TYPE
1963 #define SQL_ATTR_ENABLE_AUTO_IPD        15
1964 #define SQL_ATTR_FETCH_BOOKMARK_PTR     16
1965 #define SQL_ATTR_KEYSET_SIZE            SQL_KEYSET_SIZE
1966 #define SQL_ATTR_MAX_LENGTH         SQL_MAX_LENGTH
1967 #define SQL_ATTR_MAX_ROWS           SQL_MAX_ROWS
1968 #define SQL_ATTR_NOSCAN             SQL_NOSCAN
1969 #define SQL_ATTR_PARAM_BIND_OFFSET_PTR      17
1970 #define SQL_ATTR_PARAM_BIND_TYPE        18
1971 #define SQL_ATTR_PARAM_OPERATION_PTR        19
1972 #define SQL_ATTR_PARAM_STATUS_PTR       20
1973 #define SQL_ATTR_PARAMS_PROCESSED_PTR       21
1974 #define SQL_ATTR_PARAMSET_SIZE          22
1975 #define SQL_ATTR_QUERY_TIMEOUT          SQL_QUERY_TIMEOUT
1976 #define SQL_ATTR_RETRIEVE_DATA          SQL_RETRIEVE_DATA
1977 #define SQL_ATTR_ROW_BIND_OFFSET_PTR        23
1978 #define SQL_ATTR_ROW_BIND_TYPE          SQL_BIND_TYPE
1979 #define SQL_ATTR_ROW_NUMBER         SQL_ROW_NUMBER  /*GetStmtAttr*/
1980 #define SQL_ATTR_ROW_OPERATION_PTR      24
1981 #define SQL_ATTR_ROW_STATUS_PTR         25
1982 #define SQL_ATTR_ROWS_FETCHED_PTR       26
1983 #define SQL_ATTR_ROW_ARRAY_SIZE         27
1984 #define SQL_ATTR_SIMULATE_CURSOR        SQL_SIMULATE_CURSOR
1985 #define SQL_ATTR_USE_BOOKMARKS          SQL_USE_BOOKMARKS
1986 #endif  /* ODBCVER >= 0x0300 */
1987 
1988 #if (ODBCVER < 0x0300)
1989 #define SQL_STMT_OPT_MAX            SQL_ROW_NUMBER
1990 #define SQL_STMT_OPT_MIN            SQL_QUERY_TIMEOUT
1991 #endif  /* ODBCVER < 0x0300 */
1992 
1993 
1994 /*
1995  *  SQLGetStmtAttr - SQL_ATTR_ASYNC_ENABLE
1996  */
1997 #define SQL_ASYNC_ENABLE_OFF            0UL
1998 #define SQL_ASYNC_ENABLE_ON         1UL
1999 #define SQL_ASYNC_ENABLE_DEFAULT        SQL_ASYNC_ENABLE_OFF
2000 
2001 
2002 /*
2003  *  SQLGetStmtAttr -  SQL_ATTR_PARAM_BIND_TYPE
2004  */
2005 #if (ODBCVER >= 0x0300)
2006 #define SQL_PARAM_BIND_BY_COLUMN        0UL
2007 #define SQL_PARAM_BIND_TYPE_DEFAULT     SQL_PARAM_BIND_BY_COLUMN
2008 #endif  /* ODBCVER >= 0x0300 */
2009 
2010 
2011 /*
2012  *  SQLGetStmtAttr - SQL_BIND_TYPE
2013  */
2014 #define SQL_BIND_BY_COLUMN          0UL
2015 #define SQL_BIND_TYPE_DEFAULT           SQL_BIND_BY_COLUMN
2016 
2017 
2018 /*
2019  *  SQLGetStmtAttr - SQL_CONCURRENCY
2020  */
2021 #define SQL_CONCUR_READ_ONLY            1
2022 #define SQL_CONCUR_LOCK             2
2023 #define SQL_CONCUR_ROWVER           3
2024 #define SQL_CONCUR_VALUES           4
2025 #define SQL_CONCUR_DEFAULT          SQL_CONCUR_READ_ONLY
2026 
2027 
2028 /*
2029  *  SQLGetStmtAttr - SQL_CURSOR_TYPE
2030  */
2031 #define SQL_CURSOR_FORWARD_ONLY         0UL
2032 #define SQL_CURSOR_KEYSET_DRIVEN        1UL
2033 #define SQL_CURSOR_DYNAMIC          2UL
2034 #define SQL_CURSOR_STATIC           3UL
2035 #define SQL_CURSOR_TYPE_DEFAULT         SQL_CURSOR_FORWARD_ONLY
2036 
2037 
2038 /*
2039  *  SQLGetStmtAttr - SQL_KEYSET_SIZE
2040  */
2041 #define SQL_KEYSET_SIZE_DEFAULT         0UL
2042 
2043 
2044 /*
2045  *  SQLGetStmtAttr - SQL_MAX_LENGTH
2046  */
2047 #define SQL_MAX_LENGTH_DEFAULT          0UL
2048 
2049 
2050 /*
2051  *  SQLGetStmtAttr - SQL_MAX_ROWS
2052  */
2053 #define SQL_MAX_ROWS_DEFAULT            0UL
2054 
2055 
2056 /*
2057  *  SQLGetStmtAttr - SQL_NOSCAN
2058  */
2059 #define SQL_NOSCAN_OFF              0UL /* 1.0 FALSE */
2060 #define SQL_NOSCAN_ON               1UL /* 1.0 TRUE */
2061 #define SQL_NOSCAN_DEFAULT          SQL_NOSCAN_OFF
2062 
2063 
2064 /*
2065  *  SQLGetStmtAttr - SQL_QUERY_TIMEOUT
2066  */
2067 #define SQL_QUERY_TIMEOUT_DEFAULT       0UL
2068 
2069 
2070 /*
2071  *  SQLGetStmtAttr - SQL_RETRIEVE_DATA
2072  */
2073 #define SQL_RD_OFF              0UL
2074 #define SQL_RD_ON               1UL
2075 #define SQL_RD_DEFAULT              SQL_RD_ON
2076 
2077 
2078 /*
2079  *  SQLGetStmtAttr - SQL_ROWSET_SIZE
2080  */
2081 #define SQL_ROWSET_SIZE_DEFAULT         1UL
2082 
2083 
2084 /*
2085  *  SQLGetStmtAttr - SQL_SIMULATE_CURSOR
2086  */
2087 #define SQL_SC_NON_UNIQUE           0UL
2088 #define SQL_SC_TRY_UNIQUE           1UL
2089 #define SQL_SC_UNIQUE               2UL
2090 
2091 
2092 /*
2093  *  SQLGetStmtAttr - SQL_USE_BOOKMARKS
2094  */
2095 #define SQL_UB_OFF              0UL
2096 #define SQL_UB_ON               1UL
2097 #define SQL_UB_DEFAULT              SQL_UB_OFF
2098 #if (ODBCVER >= 0x0300)
2099 #define SQL_UB_FIXED                SQL_UB_ON
2100 #define SQL_UB_VARIABLE             2UL
2101 #endif  /* ODBCVER >= 0x0300 */
2102 
2103 
2104 /*
2105  *  SQLGetTypeInfo - SEARCHABLE
2106  */
2107 #if (ODBCVER >= 0x0300)
2108 #define SQL_COL_PRED_CHAR           SQL_LIKE_ONLY
2109 #define SQL_COL_PRED_BASIC          SQL_ALL_EXCEPT_LIKE
2110 #endif  /* ODBCVER >= 0x0300 */
2111 
2112 
2113 /*
2114  *  SQLSetPos
2115  */
2116 #define SQL_ENTIRE_ROWSET           0
2117 
2118 
2119 /*
2120  *  SQLSetPos - Operation
2121  */
2122 #define SQL_POSITION                0
2123 #define SQL_REFRESH             1
2124 #define SQL_UPDATE              2
2125 #define SQL_DELETE              3
2126 
2127 
2128 /*
2129  *  SQLBulkOperations - Operation
2130  */
2131 #define SQL_ADD                 4
2132 #define SQL_SETPOS_MAX_OPTION_VALUE     SQL_ADD
2133 #if (ODBCVER >= 0x0300)
2134 #define SQL_UPDATE_BY_BOOKMARK          5
2135 #define SQL_DELETE_BY_BOOKMARK          6
2136 #define SQL_FETCH_BY_BOOKMARK           7
2137 #endif  /* ODBCVER >= 0x0300 */
2138 
2139 
2140 /*
2141  *  SQLSetPos - LockType
2142  */
2143 #define SQL_LOCK_NO_CHANGE          0
2144 #define SQL_LOCK_EXCLUSIVE          1
2145 #define SQL_LOCK_UNLOCK             2
2146 #define SQL_SETPOS_MAX_LOCK_VALUE       SQL_LOCK_UNLOCK
2147 
2148 
2149 /*
2150  *  SQLSetPos macros
2151  */
2152 #define SQL_POSITION_TO(hstmt,irow) \
2153     SQLSetPos(hstmt,irow,SQL_POSITION,SQL_LOCK_NO_CHANGE)
2154 #define SQL_LOCK_RECORD(hstmt,irow,fLock) \
2155     SQLSetPos(hstmt,irow,SQL_POSITION,fLock)
2156 #define SQL_REFRESH_RECORD(hstmt,irow,fLock) \
2157     SQLSetPos(hstmt,irow,SQL_REFRESH,fLock)
2158 #define SQL_UPDATE_RECORD(hstmt,irow) \
2159     SQLSetPos(hstmt,irow,SQL_UPDATE,SQL_LOCK_NO_CHANGE)
2160 #define SQL_DELETE_RECORD(hstmt,irow) \
2161     SQLSetPos(hstmt,irow,SQL_DELETE,SQL_LOCK_NO_CHANGE)
2162 #define SQL_ADD_RECORD(hstmt,irow) \
2163     SQLSetPos(hstmt,irow,SQL_ADD,SQL_LOCK_NO_CHANGE)
2164 
2165 
2166 /*
2167  *  SQLSpecialColumns - Column types and scopes
2168  */
2169 #define SQL_BEST_ROWID              1
2170 #define SQL_ROWVER              2
2171 
2172 
2173 /*
2174  *  All the ODBC keywords
2175  */
2176 #define SQL_ODBC_KEYWORDS \
2177 "ABSOLUTE,ACTION,ADA,ADD,ALL,ALLOCATE,ALTER,AND,ANY,ARE,AS,"\
2178 "ASC,ASSERTION,AT,AUTHORIZATION,AVG,"\
2179 "BEGIN,BETWEEN,BIT,BIT_LENGTH,BOTH,BY,CASCADE,CASCADED,CASE,CAST,CATALOG,"\
2180 "CHAR,CHAR_LENGTH,CHARACTER,CHARACTER_LENGTH,CHECK,CLOSE,COALESCE,"\
2181 "COLLATE,COLLATION,COLUMN,COMMIT,CONNECT,CONNECTION,CONSTRAINT,"\
2182 "CONSTRAINTS,CONTINUE,CONVERT,CORRESPONDING,COUNT,CREATE,CROSS,CURRENT,"\
2183 "CURRENT_DATE,CURRENT_TIME,CURRENT_TIMESTAMP,CURRENT_USER,CURSOR,"\
2184 "DATE,DAY,DEALLOCATE,DEC,DECIMAL,DECLARE,DEFAULT,DEFERRABLE,"\
2185 "DEFERRED,DELETE,DESC,DESCRIBE,DESCRIPTOR,DIAGNOSTICS,DISCONNECT,"\
2186 "DISTINCT,DOMAIN,DOUBLE,DROP,"\
2187 "ELSE,END,END-EXEC,ESCAPE,EXCEPT,EXCEPTION,EXEC,EXECUTE,"\
2188 "EXISTS,EXTERNAL,EXTRACT,"\
2189 "FALSE,FETCH,FIRST,FLOAT,FOR,FOREIGN,FORTRAN,FOUND,FROM,FULL,"\
2190 "GET,GLOBAL,GO,GOTO,GRANT,GROUP,HAVING,HOUR,"\
2191 "IDENTITY,IMMEDIATE,IN,INCLUDE,INDEX,INDICATOR,INITIALLY,INNER,"\
2192 "INPUT,INSENSITIVE,INSERT,INT,INTEGER,INTERSECT,INTERVAL,INTO,IS,ISOLATION,"\
2193 "JOIN,KEY,LANGUAGE,LAST,LEADING,LEFT,LEVEL,LIKE,LOCAL,LOWER,"\
2194 "MATCH,MAX,MIN,MINUTE,MODULE,MONTH,"\
2195 "NAMES,NATIONAL,NATURAL,NCHAR,NEXT,NO,NONE,NOT,NULL,NULLIF,NUMERIC,"\
2196 "OCTET_LENGTH,OF,ON,ONLY,OPEN,OPTION,OR,ORDER,OUTER,OUTPUT,OVERLAPS,"\
2197 "PAD,PARTIAL,PASCAL,PLI,POSITION,PRECISION,PREPARE,PRESERVE,"\
2198 "PRIMARY,PRIOR,PRIVILEGES,PROCEDURE,PUBLIC,"\
2199 "READ,REAL,REFERENCES,RELATIVE,RESTRICT,REVOKE,RIGHT,ROLLBACK,ROWS"\
2200 "SCHEMA,SCROLL,SECOND,SECTION,SELECT,SESSION,SESSION_USER,SET,SIZE,"\
2201 "SMALLINT,SOME,SPACE,SQL,SQLCA,SQLCODE,SQLERROR,SQLSTATE,SQLWARNING,"\
2202 "SUBSTRING,SUM,SYSTEM_USER,"\
2203 "TABLE,TEMPORARY,THEN,TIME,TIMESTAMP,TIMEZONE_HOUR,TIMEZONE_MINUTE,"\
2204 "TO,TRAILING,TRANSACTION,TRANSLATE,TRANSLATION,TRIM,TRUE,"\
2205 "UNION,UNIQUE,UNKNOWN,UPDATE,UPPER,USAGE,USER,USING,"\
2206 "VALUE,VALUES,VARCHAR,VARYING,VIEW,WHEN,WHENEVER,WHERE,WITH,WORK,WRITE,"\
2207 "YEAR,ZONE"
2208 
2209 
2210 /*
2211  * ----------------------------------------------------------------------
2212  *  Level 2 Functions
2213  * ----------------------------------------------------------------------
2214  */
2215 
2216 /*
2217  *  SQLExtendedFetch - fFetchType
2218  */
2219 #define SQL_FETCH_BOOKMARK          8
2220 
2221 
2222 /*
2223  *  SQLExtendedFetch - rgfRowStatus
2224  */
2225 #define SQL_ROW_SUCCESS             0
2226 #define SQL_ROW_DELETED             1
2227 #define SQL_ROW_UPDATED             2
2228 #define SQL_ROW_NOROW               3
2229 #define SQL_ROW_ADDED               4
2230 #define SQL_ROW_ERROR               5
2231 #if (ODBCVER >= 0x0300)
2232 #define SQL_ROW_SUCCESS_WITH_INFO       6
2233 #define SQL_ROW_PROCEED             0
2234 #define SQL_ROW_IGNORE              1
2235 #endif
2236 
2237 
2238 /*
2239  * SQL_DESC_ARRAY_STATUS_PTR
2240  */
2241 #if (ODBCVER >= 0x0300)
2242 #define SQL_PARAM_SUCCESS           0
2243 #define SQL_PARAM_SUCCESS_WITH_INFO     6
2244 #define SQL_PARAM_ERROR             5
2245 #define SQL_PARAM_UNUSED            7
2246 #define SQL_PARAM_DIAG_UNAVAILABLE      1
2247 
2248 #define SQL_PARAM_PROCEED           0
2249 #define SQL_PARAM_IGNORE            1
2250 #endif  /* ODBCVER >= 0x0300 */
2251 
2252 
2253 /*
2254  *  SQLForeignKeys - UPDATE_RULE/DELETE_RULE
2255  */
2256 #define SQL_CASCADE             0
2257 #define SQL_RESTRICT                1
2258 #define SQL_SET_NULL                2
2259 
2260 #if (ODBCVER >= 0x0250)
2261 #define SQL_NO_ACTION               3
2262 #define SQL_SET_DEFAULT             4
2263 #endif  /* ODBCVER >= 0x0250 */
2264 
2265 
2266 /*
2267  *  SQLForeignKeys - DEFERABILITY
2268  */
2269 #if (ODBCVER >= 0x0300)
2270 #define SQL_INITIALLY_DEFERRED          5
2271 #define SQL_INITIALLY_IMMEDIATE         6
2272 #define SQL_NOT_DEFERRABLE          7
2273 #endif  /* ODBCVER >= 0x0300 */
2274 
2275 
2276 /*
2277  *  SQLBindParameter - fParamType
2278  *  SQLProcedureColumns - COLUMN_TYPE
2279  */
2280 #define SQL_PARAM_TYPE_UNKNOWN          0
2281 #define SQL_PARAM_INPUT             1
2282 #define SQL_PARAM_INPUT_OUTPUT          2
2283 #define SQL_RESULT_COL              3
2284 #define SQL_PARAM_OUTPUT            4
2285 #define SQL_RETURN_VALUE            5
2286 
2287 
2288 /*
2289  *   SQLProcedures - PROCEDURE_TYPE
2290  */
2291 #define SQL_PT_UNKNOWN              0
2292 #define SQL_PT_PROCEDURE            1
2293 #define SQL_PT_FUNCTION             2
2294 
2295 
2296 /*
2297  *  SQLSetParam to SQLBindParameter conversion
2298  */
2299 #define SQL_PARAM_TYPE_DEFAULT          SQL_PARAM_INPUT_OUTPUT
2300 #define SQL_SETPARAM_VALUE_MAX          (-1L)
2301 
2302 
2303 /*
2304  *  SQLStatistics - fAccuracy
2305  */
2306 #define SQL_QUICK               0
2307 #define SQL_ENSURE              1
2308 
2309 
2310 /*
2311  *  SQLStatistics - TYPE
2312  */
2313 #define SQL_TABLE_STAT              0
2314 
2315 
2316 /*
2317  *  SQLTables
2318  */
2319 #if (ODBCVER >= 0x0300)
2320 #define SQL_ALL_CATALOGS            "%"
2321 #define SQL_ALL_SCHEMAS             "%"
2322 #define SQL_ALL_TABLE_TYPES         "%"
2323 #endif  /* ODBCVER >= 0x0300 */
2324 
2325 /*
2326  *  SQLSpecialColumns - PSEUDO_COLUMN
2327  */
2328 #define SQL_PC_NOT_PSEUDO           1
2329 
2330 
2331 /*
2332  *  Deprecated defines from prior versions of ODBC
2333  */
2334 #define SQL_DATABASE_NAME           16
2335 #define SQL_FD_FETCH_PREV           SQL_FD_FETCH_PRIOR
2336 #define SQL_FETCH_PREV              SQL_FETCH_PRIOR
2337 #define SQL_CONCUR_TIMESTAMP            SQL_CONCUR_ROWVER
2338 #define SQL_SCCO_OPT_TIMESTAMP          SQL_SCCO_OPT_ROWVER
2339 #define SQL_CC_DELETE               SQL_CB_DELETE
2340 #define SQL_CR_DELETE               SQL_CB_DELETE
2341 #define SQL_CC_CLOSE                SQL_CB_CLOSE
2342 #define SQL_CR_CLOSE                SQL_CB_CLOSE
2343 #define SQL_CC_PRESERVE             SQL_CB_PRESERVE
2344 #define SQL_CR_PRESERVE             SQL_CB_PRESERVE
2345 #if (ODBCVER < 0x0200)
2346 #define SQL_FETCH_RESUME            7
2347 #endif
2348 #define SQL_SCROLL_FORWARD_ONLY         0L
2349 #define SQL_SCROLL_KEYSET_DRIVEN        (-1L)
2350 #define SQL_SCROLL_DYNAMIC          (-2L)
2351 #define SQL_SCROLL_STATIC           (-3L)
2352 
2353 
2354 /*
2355  *  Level 1 function prototypes
2356  */
2357 SQLRETURN SQL_API SQLDriverConnect (
2358     SQLHDBC       hdbc,
2359     SQLHWND       hwnd,
2360     SQLCHAR     * szConnStrIn,
2361     SQLSMALLINT       cbConnStrIn,
2362     SQLCHAR     * szConnStrOut,
2363     SQLSMALLINT       cbConnStrOutMax,
2364     SQLSMALLINT     * pcbConnStrOut,
2365     SQLUSMALLINT      fDriverCompletion);
2366 
2367 /*
2368  *  Level 2 function prototypes
2369  */
2370 
2371 SQLRETURN SQL_API SQLBrowseConnect (
2372     SQLHDBC       hdbc,
2373     SQLCHAR     * szConnStrIn,
2374     SQLSMALLINT       cbConnStrIn,
2375     SQLCHAR     * szConnStrOut,
2376     SQLSMALLINT       cbConnStrOutMax,
2377     SQLSMALLINT     * pcbConnStrOut);
2378 
2379 #if (ODBCVER >= 0x0300)
2380 SQLRETURN SQL_API SQLBulkOperations (
2381     SQLHSTMT          StatementHandle,
2382     SQLSMALLINT       Operation);
2383 #endif /* ODBCVER >= 0x0300 */
2384 
2385 SQLRETURN SQL_API SQLColAttributes (
2386     SQLHSTMT          hstmt,
2387     SQLUSMALLINT      icol,
2388     SQLUSMALLINT      fDescType,
2389     SQLPOINTER        rgbDesc,
2390     SQLSMALLINT       cbDescMax,
2391     SQLSMALLINT     * pcbDesc,
2392     SQLLEN      * pfDesc);
2393 
2394 SQLRETURN SQL_API SQLColumnPrivileges (
2395     SQLHSTMT          hstmt,
2396     SQLCHAR     * szCatalogName,
2397     SQLSMALLINT       cbCatalogName,
2398     SQLCHAR     * szSchemaName,
2399     SQLSMALLINT       cbSchemaName,
2400     SQLCHAR     * szTableName,
2401     SQLSMALLINT       cbTableName,
2402     SQLCHAR     * szColumnName,
2403     SQLSMALLINT       cbColumnName);
2404 
2405 SQLRETURN SQL_API SQLDescribeParam (
2406     SQLHSTMT          hstmt,
2407     SQLUSMALLINT      ipar,
2408     SQLSMALLINT     * pfSqlType,
2409     SQLULEN     * pcbParamDef,
2410     SQLSMALLINT     * pibScale,
2411     SQLSMALLINT     * pfNullable);
2412 
2413 SQLRETURN SQL_API SQLExtendedFetch (
2414     SQLHSTMT          hstmt,
2415     SQLUSMALLINT      fFetchType,
2416     SQLLEN        irow,
2417     SQLULEN     * pcrow,
2418     SQLUSMALLINT    * rgfRowStatus);
2419 
2420 SQLRETURN SQL_API SQLForeignKeys (
2421     SQLHSTMT          hstmt,
2422     SQLCHAR     * szPkCatalogName,
2423     SQLSMALLINT       cbPkCatalogName,
2424     SQLCHAR     * szPkSchemaName,
2425     SQLSMALLINT       cbPkSchemaName,
2426     SQLCHAR     * szPkTableName,
2427     SQLSMALLINT       cbPkTableName,
2428     SQLCHAR     * szFkCatalogName,
2429     SQLSMALLINT       cbFkCatalogName,
2430     SQLCHAR     * szFkSchemaName,
2431     SQLSMALLINT       cbFkSchemaName,
2432     SQLCHAR     * szFkTableName,
2433     SQLSMALLINT       cbFkTableName);
2434 
2435 SQLRETURN SQL_API SQLMoreResults (
2436     SQLHSTMT          hstmt);
2437 
2438 SQLRETURN SQL_API SQLNativeSql (
2439     SQLHDBC       hdbc,
2440     SQLCHAR     * szSqlStrIn,
2441     SQLINTEGER        cbSqlStrIn,
2442     SQLCHAR     * szSqlStr,
2443     SQLINTEGER        cbSqlStrMax,
2444     SQLINTEGER      * pcbSqlStr);
2445 
2446 SQLRETURN SQL_API SQLNumParams (
2447     SQLHSTMT        hstmt,
2448     SQLSMALLINT     * pcpar);
2449 
2450 SQLRETURN SQL_API SQLParamOptions (
2451     SQLHSTMT          hstmt,
2452     SQLULEN       crow,
2453     SQLULEN     * pirow);
2454 
2455 SQLRETURN SQL_API SQLPrimaryKeys (
2456     SQLHSTMT          hstmt,
2457     SQLCHAR     * szCatalogName,
2458     SQLSMALLINT       cbCatalogName,
2459     SQLCHAR     * szSchemaName,
2460     SQLSMALLINT       cbSchemaName,
2461     SQLCHAR     * szTableName,
2462     SQLSMALLINT       cbTableName);
2463 
2464 SQLRETURN SQL_API SQLProcedureColumns (
2465     SQLHSTMT          hstmt,
2466     SQLCHAR     * szCatalogName,
2467     SQLSMALLINT       cbCatalogName,
2468     SQLCHAR     * szSchemaName,
2469     SQLSMALLINT       cbSchemaName,
2470     SQLCHAR     * szProcName,
2471     SQLSMALLINT       cbProcName,
2472     SQLCHAR     * szColumnName,
2473     SQLSMALLINT       cbColumnName);
2474 
2475 SQLRETURN SQL_API SQLProcedures (
2476     SQLHSTMT          hstmt,
2477     SQLCHAR     * szCatalogName,
2478     SQLSMALLINT       cbCatalogName,
2479     SQLCHAR     * szSchemaName,
2480     SQLSMALLINT       cbSchemaName,
2481     SQLCHAR     * szProcName,
2482     SQLSMALLINT       cbProcName);
2483 
2484 SQLRETURN SQL_API SQLSetPos (
2485     SQLHSTMT          hstmt,
2486     SQLSETPOSIROW     irow,
2487     SQLUSMALLINT      fOption,
2488     SQLUSMALLINT      fLock);
2489 
2490 SQLRETURN SQL_API SQLTablePrivileges (
2491     SQLHSTMT          hstmt,
2492     SQLCHAR     * szCatalogName,
2493     SQLSMALLINT       cbCatalogName,
2494     SQLCHAR     * szSchemaName,
2495     SQLSMALLINT       cbSchemaName,
2496     SQLCHAR     * szTableName,
2497     SQLSMALLINT       cbTableName);
2498 
2499 SQLRETURN SQL_API SQLDrivers (
2500     SQLHENV       henv,
2501     SQLUSMALLINT      fDirection,
2502     SQLCHAR     * szDriverDesc,
2503     SQLSMALLINT       cbDriverDescMax,
2504     SQLSMALLINT     * pcbDriverDesc,
2505     SQLCHAR     * szDriverAttributes,
2506     SQLSMALLINT       cbDrvrAttrMax,
2507     SQLSMALLINT     * pcbDrvrAttr);
2508 
2509 SQLRETURN SQL_API SQLBindParameter (
2510     SQLHSTMT          hstmt,
2511     SQLUSMALLINT      ipar,
2512     SQLSMALLINT       fParamType,
2513     SQLSMALLINT       fCType,
2514     SQLSMALLINT       fSqlType,
2515     SQLULEN       cbColDef,
2516     SQLSMALLINT       ibScale,
2517     SQLPOINTER        rgbValue,
2518     SQLLEN        cbValueMax,
2519     SQLLEN      * pcbValue);
2520 
2521 /*
2522  *  Depreciated - use SQLSetStmtOptions
2523  */
2524 SQLRETURN SQL_API SQLSetScrollOptions (     /* Use SQLSetStmtOptions */
2525     SQLHSTMT          hstmt,
2526     SQLUSMALLINT      fConcurrency,
2527     SQLLEN        crowKeyset,
2528     SQLUSMALLINT      crowRowset);
2529 
2530 
2531 /*
2532  *  SQLAllocHandleStd - make SQLAllocHandle compatible with X/Open standard
2533  *
2534  *  NOTE: An application should not call SQLAllocHandleStd directly
2535  */
2536 #ifdef ODBC_STD
2537 #define SQLAllocHandle          SQLAllocHandleStd
2538 #define SQLAllocEnv(phenv) \
2539     SQLAllocHandleStd(SQL_HANDLE_ENV, SQL_NULL_HANDLE, phenv)
2540 
2541 #if (ODBCVER >= 0x0300)
2542 SQLRETURN SQL_API SQLAllocHandleStd (
2543     SQLSMALLINT       fHandleType,
2544     SQLHANDLE         hInput,
2545     SQLHANDLE       * phOutput);
2546 #endif
2547 
2548 
2549 /* Internal type subcodes */
2550 #define SQL_YEAR            SQL_CODE_YEAR
2551 #define SQL_MONTH           SQL_CODE_MONTH
2552 #define SQL_DAY             SQL_CODE_DAY
2553 #define SQL_HOUR            SQL_CODE_HOUR
2554 #define SQL_MINUTE          SQL_CODE_MINUTE
2555 #define SQL_SECOND          SQL_CODE_SECOND
2556 #define SQL_YEAR_TO_MONTH       SQL_CODE_YEAR_TO_MONTH
2557 #define SQL_DAY_TO_HOUR         SQL_CODE_DAY_TO_HOUR
2558 #define SQL_DAY_TO_MINUTE       SQL_CODE_DAY_TO_MINUTE
2559 #define SQL_DAY_TO_SECOND       SQL_CODE_DAY_TO_SECOND
2560 #define SQL_HOUR_TO_MINUTE      SQL_CODE_HOUR_TO_MINUTE
2561 #define SQL_HOUR_TO_SECOND      SQL_CODE_HOUR_TO_SECOND
2562 #define SQL_MINUTE_TO_SECOND        SQL_CODE_MINUTE_TO_SECOND
2563 #endif  /* ODBC_STD */
2564 
2565 
2566 #ifdef __cplusplus
2567 }
2568 #endif
2569 
2570 #include <odbc/sqlucode.h>
2571 
2572 #endif  /* _SQLEXT_H */
2573