xref: /trunk/main/unixODBC/inc/sqlext.h (revision 24201887)
1 /*
2  *  sqlext.h
3  *
4  *  $Id: sqlext.h,v 1.10 2006/01/20 15:58:34 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-2006 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