You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openoffice.apache.org by pf...@apache.org on 2011/10/06 00:10:16 UTC
svn commit: r1179460 [2/3] - in /incubator/ooo/trunk/main: NOTICE
unixODBC/inc/iodbcunix.h unixODBC/inc/sql.h unixODBC/inc/sqlext.h
unixODBC/inc/sqltypes.h unixODBC/inc/sqlucode.h
Modified: incubator/ooo/trunk/main/unixODBC/inc/sqlext.h
URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/main/unixODBC/inc/sqlext.h?rev=1179460&r1=1179459&r2=1179460&view=diff
==============================================================================
--- incubator/ooo/trunk/main/unixODBC/inc/sqlext.h (original)
+++ incubator/ooo/trunk/main/unixODBC/inc/sqlext.h Wed Oct 5 22:10:15 2011
@@ -1,416 +1,159 @@
-/*****************************************************
- * sqlext.h
+/*
+ * sqlext.h
+ *
+ * $Id: sqlext.h,v 1.10 2006/01/20 15:58:34 source Exp $
+ *
+ * ODBC defines (ext)
+ *
+ * The iODBC driver manager.
+ *
+ * Copyright (C) 1995 by Ke Jin <ke...@empress.com>
+ * Copyright (C) 1996-2006 by OpenLink Software <io...@openlinksw.com>
+ * All Rights Reserved.
+ *
+ * This software is released under the terms of either of the following
+ * licenses:
+ *
+ * - GNU Library General Public License (see LICENSE.LGPL)
+ * - The BSD License (see LICENSE.BSD).
+ *
+ * Note that the only valid version of the LGPL license as far as this
+ * project is concerned is the original GNU Library General Public License
+ * Version 2, dated June 1991.
+ *
+ * While not mandated by the BSD license, any patches you make to the
+ * iODBC source code may be contributed back into the iODBC project
+ * at your discretion. Contributions will benefit the Open Source and
+ * Data Access community as a whole. Submissions may be made at:
+ *
+ * http://www.iodbc.org
+ *
+ *
+ * GNU Library Generic Public License Version 2
+ * ============================================
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; only
+ * Version 2 of the License dated June 1991.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the Free
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ *
+ * The BSD License
+ * ===============
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
*
- * These should be consistent with the MS version.
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ * 3. Neither the name of OpenLink Software Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
*
- *****************************************************/
-#ifndef __SQLEXT_H
-#define __SQLEXT_H
-
-
-/* BEGIN - unixODBC ONLY (programs like ODBCConfig and DataManager use these) */
-
-/* COLUMNS IN SQLTables() RESULT SET */
-#define SQLTables_TABLE_CATALOG 1
-#define SQLTables_TABLE_SCHEM 2
-#define SQLTables_TABLE_NAME 3
-#define SQLTables_TABLE_TYPE 4
-#define SQLTables_REMARKS 5
-
-/* COLUMNS IN SQLColumns() RESULT SET */
-#define SQLColumns_TABLE_CAT 1
-#define SQLColumns_TABLE_SCHEM 2
-#define SQLColumns_TABLE_NAME 3
-#define SQLColumns_COLUMN_NAME 4
-#define SQLColumns_DATA_TYPE 5
-#define SQLColumns_TYPE_NAME 6
-#define SQLColumns_COLUMN_SIZE 7
-#define SQLColumns_BUFFER_LENGTH 8
-#define SQLColumns_DECIMAL_DIGITS 9
-#define SQLColumns_NUM_PREC_RADIX 10
-#define SQLColumns_NULLABLE 11
-#define SQLColumns_REMARKS 12
-#define SQLColumns_COLUMN_DEF 13
-#define SQLColumns_SQL_DATA_TYPE 14
-#define SQLColumns_SQL_DATETIME_SUB 15
-#define SQLColumns_CHAR_OCTET_LENGTH 16
-#define SQLColumns_ORDINAL_POSITION 17
-#define SQLColumns_IS_NULLABLE 18
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL OPENLINK OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
-/* END - unixODBC ONLY */
+#ifndef _SQLEXT_H
+#define _SQLEXT_H
-#ifndef __SQL_H
-#include "odbc/sql.h"
+#ifndef _SQL_H
+#include <odbc/sql.h>
#endif
#ifdef __cplusplus
-extern "C" { /* Assume C declarations for C++ */
-#endif
-
-/* generally useful constants */
-#define SQL_SPEC_MAJOR 3 /* Major version of specification */
-#define SQL_SPEC_MINOR 52 /* Minor version of specification */
-#define SQL_SPEC_STRING "03.52" /* String constant for version */
-
-#define SQL_SQLSTATE_SIZE 5 /* size of SQLSTATE */
-#define SQL_MAX_DSN_LENGTH 32 /* maximum data source name size */
-
-#define SQL_MAX_OPTION_STRING_LENGTH 256
-
-/* return code SQL_NO_DATA_FOUND is the same as SQL_NO_DATA */
-#if (ODBCVER < 0x0300)
-#define SQL_NO_DATA_FOUND 100
-#else
-#define SQL_NO_DATA_FOUND SQL_NO_DATA
+extern "C" {
#endif
-/* an end handle type */
-#if (ODBCVER >= 0x0300)
-#define SQL_HANDLE_SENV 5
-#endif /* ODBCVER >= 0x0300 */
-
-/* env attribute */
-#if (ODBCVER >= 0x0300)
-#define SQL_ATTR_ODBC_VERSION 200
-#define SQL_ATTR_CONNECTION_POOLING 201
-#define SQL_ATTR_CP_MATCH 202
-
-/* unixODBC additions */
-#define SQL_ATTR_UNIXODBC_SYSPATH 65001
-#define SQL_ATTR_UNIXODBC_VERSION 65002
-#define SQL_ATTR_UNIXODBC_ENVATTR 65003
-#endif /* ODBCVER >= 0x0300 */
-
-#if (ODBCVER >= 0x0300)
-/* values for SQL_ATTR_CONNECTION_POOLING */
-#define SQL_CP_OFF 0UL
-#define SQL_CP_ONE_PER_DRIVER 1UL
-#define SQL_CP_ONE_PER_HENV 2UL
-#define SQL_CP_DEFAULT SQL_CP_OFF
-
-/* values for SQL_ATTR_CP_MATCH */
-#define SQL_CP_STRICT_MATCH 0UL
-#define SQL_CP_RELAXED_MATCH 1UL
-#define SQL_CP_MATCH_DEFAULT SQL_CP_STRICT_MATCH
-
-/* values for SQL_ATTR_ODBC_VERSION */
-#define SQL_OV_ODBC2 2UL
-#define SQL_OV_ODBC3 3UL
-#endif /* ODBCVER >= 0x0300 */
-
-/* connection attributes */
-#define SQL_ACCESS_MODE 101
-#define SQL_AUTOCOMMIT 102
-#define SQL_LOGIN_TIMEOUT 103
-#define SQL_OPT_TRACE 104
-#define SQL_OPT_TRACEFILE 105
-#define SQL_TRANSLATE_DLL 106
-#define SQL_TRANSLATE_OPTION 107
-#define SQL_TXN_ISOLATION 108
-#define SQL_CURRENT_QUALIFIER 109
-#define SQL_ODBC_CURSORS 110
-#define SQL_QUIET_MODE 111
-#define SQL_PACKET_SIZE 112
-
-/* connection attributes with new names */
-#if (ODBCVER >= 0x0300)
-#define SQL_ATTR_ACCESS_MODE SQL_ACCESS_MODE
-#define SQL_ATTR_AUTOCOMMIT SQL_AUTOCOMMIT
-#define SQL_ATTR_CONNECTION_TIMEOUT 113
-#define SQL_ATTR_CURRENT_CATALOG SQL_CURRENT_QUALIFIER
-#define SQL_ATTR_DISCONNECT_BEHAVIOR 114
-#define SQL_ATTR_ENLIST_IN_DTC 1207
-#define SQL_ATTR_ENLIST_IN_XA 1208
-#define SQL_ATTR_LOGIN_TIMEOUT SQL_LOGIN_TIMEOUT
-#define SQL_ATTR_ODBC_CURSORS SQL_ODBC_CURSORS
-#define SQL_ATTR_PACKET_SIZE SQL_PACKET_SIZE
-#define SQL_ATTR_QUIET_MODE SQL_QUIET_MODE
-#define SQL_ATTR_TRACE SQL_OPT_TRACE
-#define SQL_ATTR_TRACEFILE SQL_OPT_TRACEFILE
-#define SQL_ATTR_TRANSLATE_LIB SQL_TRANSLATE_DLL
-#define SQL_ATTR_TRANSLATE_OPTION SQL_TRANSLATE_OPTION
-#define SQL_ATTR_TXN_ISOLATION SQL_TXN_ISOLATION
-#endif /* ODBCVER >= 0x0300 */
-
-#define SQL_ATTR_CONNECTION_DEAD 1209 /* GetConnectAttr only */
-
-#define SQL_ATTR_DRIVER_THREADING 1028 /* Driver threading level */
-
-#if (ODBCVER >= 0x0351)
-/* ODBC Driver Manager sets this connection attribute to a unicode driver
- (which supports SQLConnectW) when the application is an ANSI application
- (which calls SQLConnect, SQLDriverConnect, or SQLBrowseConnect).
- This is SetConnectAttr only and application does not set this attribute
- This attribute was introduced because some unicode driver's some APIs may
- need to behave differently on ANSI or Unicode applications. A unicode
- driver, which has same behavior for both ANSI or Unicode applications,
- should return SQL_ERROR when the driver manager sets this connection
- attribute. When a unicode driver returns SQL_SUCCESS on this attribute,
- the driver manager treates ANSI and Unicode connections differently in
- connection pooling.
-*/
-#define SQL_ATTR_ANSI_APP 115
-#endif
-/* SQL_CONNECT_OPT_DRVR_START is not meaningful for 3.0 driver */
-#if (ODBCVER < 0x0300)
-#define SQL_CONNECT_OPT_DRVR_START 1000
-#endif /* ODBCVER < 0x0300 */
+/*
+ * Useful Constants
+ */
+#define SQL_SPEC_MAJOR 3
+#define SQL_SPEC_MINOR 52
+#define SQL_SPEC_STRING "03.52"
+
+#define SQL_SQLSTATE_SIZE 5
+#define SQL_MAX_DSN_LENGTH 32
+#define SQL_MAX_OPTION_STRING_LENGTH 256
-#if (ODBCVER < 0x0300)
-#define SQL_CONN_OPT_MAX SQL_PACKET_SIZE
-#define SQL_CONN_OPT_MIN SQL_ACCESS_MODE
-#endif /* ODBCVER < 0x0300 */
-
-/* SQL_ACCESS_MODE options */
-#define SQL_MODE_READ_WRITE 0UL
-#define SQL_MODE_READ_ONLY 1UL
-#define SQL_MODE_DEFAULT SQL_MODE_READ_WRITE
-
-/* SQL_AUTOCOMMIT options */
-#define SQL_AUTOCOMMIT_OFF 0UL
-#define SQL_AUTOCOMMIT_ON 1UL
-#define SQL_AUTOCOMMIT_DEFAULT SQL_AUTOCOMMIT_ON
-
-/* SQL_LOGIN_TIMEOUT options */
-#define SQL_LOGIN_TIMEOUT_DEFAULT 15UL
-
-/* SQL_OPT_TRACE options */
-#define SQL_OPT_TRACE_OFF 0UL
-#define SQL_OPT_TRACE_ON 1UL
-#define SQL_OPT_TRACE_DEFAULT SQL_OPT_TRACE_OFF
-#define SQL_OPT_TRACE_FILE_DEFAULT "/tmp/SQL.LOG"
-
-/* SQL_ODBC_CURSORS options */
-#define SQL_CUR_USE_IF_NEEDED 0UL
-#define SQL_CUR_USE_ODBC 1UL
-#define SQL_CUR_USE_DRIVER 2UL
-#define SQL_CUR_DEFAULT SQL_CUR_USE_DRIVER
+/*
+ * Handle types
+ */
#if (ODBCVER >= 0x0300)
-/* values for SQL_ATTR_DISCONNECT_BEHAVIOR */
-#define SQL_DB_RETURN_TO_POOL 0UL
-#define SQL_DB_DISCONNECT 1UL
-#define SQL_DB_DEFAULT SQL_DB_RETURN_TO_POOL
-
-/* values for SQL_ATTR_ENLIST_IN_DTC */
-#define SQL_DTC_DONE 0L
-#endif /* ODBCVER >= 0x0300 */
-
-/* values for SQL_ATTR_CONNECTION_DEAD */
-#define SQL_CD_TRUE 1L /* Connection is closed/dead */
-#define SQL_CD_FALSE 0L /* Connection is open/available */
-
-/* values for SQL_ATTR_ANSI_APP */
-#if (ODBCVER >= 0x0351)
-#define SQL_AA_TRUE 1L /* the application is an ANSI app */
-#define SQL_AA_FALSE 0L /* the application is a Unicode app */
-#endif
-
-/* statement attributes */
-#define SQL_QUERY_TIMEOUT 0
-#define SQL_MAX_ROWS 1
-#define SQL_NOSCAN 2
-#define SQL_MAX_LENGTH 3
-#define SQL_ASYNC_ENABLE 4 /* same as SQL_ATTR_ASYNC_ENABLE */
-#define SQL_BIND_TYPE 5
-#define SQL_CURSOR_TYPE 6
-#define SQL_CONCURRENCY 7
-#define SQL_KEYSET_SIZE 8
-#define SQL_ROWSET_SIZE 9
-#define SQL_SIMULATE_CURSOR 10
-#define SQL_RETRIEVE_DATA 11
-#define SQL_USE_BOOKMARKS 12
-#define SQL_GET_BOOKMARK 13 /* GetStmtOption Only */
-#define SQL_ROW_NUMBER 14 /* GetStmtOption Only */
-
-/* statement attributes for ODBC 3.0 */
-#if (ODBCVER >= 0x0300)
-#define SQL_ATTR_ASYNC_ENABLE 4
-#define SQL_ATTR_CONCURRENCY SQL_CONCURRENCY
-#define SQL_ATTR_CURSOR_TYPE SQL_CURSOR_TYPE
-#define SQL_ATTR_ENABLE_AUTO_IPD 15
-#define SQL_ATTR_FETCH_BOOKMARK_PTR 16
-#define SQL_ATTR_KEYSET_SIZE SQL_KEYSET_SIZE
-#define SQL_ATTR_MAX_LENGTH SQL_MAX_LENGTH
-#define SQL_ATTR_MAX_ROWS SQL_MAX_ROWS
-#define SQL_ATTR_NOSCAN SQL_NOSCAN
-#define SQL_ATTR_PARAM_BIND_OFFSET_PTR 17
-#define SQL_ATTR_PARAM_BIND_TYPE 18
-#define SQL_ATTR_PARAM_OPERATION_PTR 19
-#define SQL_ATTR_PARAM_STATUS_PTR 20
-#define SQL_ATTR_PARAMS_PROCESSED_PTR 21
-#define SQL_ATTR_PARAMSET_SIZE 22
-#define SQL_ATTR_QUERY_TIMEOUT SQL_QUERY_TIMEOUT
-#define SQL_ATTR_RETRIEVE_DATA SQL_RETRIEVE_DATA
-#define SQL_ATTR_ROW_BIND_OFFSET_PTR 23
-#define SQL_ATTR_ROW_BIND_TYPE SQL_BIND_TYPE
-#define SQL_ATTR_ROW_NUMBER SQL_ROW_NUMBER /*GetStmtAttr*/
-#define SQL_ATTR_ROW_OPERATION_PTR 24
-#define SQL_ATTR_ROW_STATUS_PTR 25
-#define SQL_ATTR_ROWS_FETCHED_PTR 26
-#define SQL_ATTR_ROW_ARRAY_SIZE 27
-#define SQL_ATTR_SIMULATE_CURSOR SQL_SIMULATE_CURSOR
-#define SQL_ATTR_USE_BOOKMARKS SQL_USE_BOOKMARKS
+#define SQL_HANDLE_SENV 5
+#endif /* ODBCVER >= 0x0300 */
-#endif /* ODBCVER >= 0x0300 */
+/*
+ * Function return codes
+ */
#if (ODBCVER < 0x0300)
-#define SQL_STMT_OPT_MAX SQL_ROW_NUMBER
-#define SQL_STMT_OPT_MIN SQL_QUERY_TIMEOUT
-#endif /* ODBCVER < 0x0300 */
-
-/* New defines for SEARCHABLE column in SQLGetTypeInfo */
-
-#if (ODBCVER >= 0x0300)
-#define SQL_COL_PRED_CHAR SQL_LIKE_ONLY
-#define SQL_COL_PRED_BASIC SQL_ALL_EXCEPT_LIKE
-#endif /* ODBCVER >= 0x0300 */
-
-
+#define SQL_NO_DATA_FOUND 100
+#else
+#define SQL_NO_DATA_FOUND SQL_NO_DATA
+#endif /* ODBCVER < 0x0300 */
-/* whether an attribute is a pointer or not */
-#if (ODBCVER >= 0x0300)
-#define SQL_IS_POINTER (-4)
-#define SQL_IS_UINTEGER (-5)
-#define SQL_IS_INTEGER (-6)
-#define SQL_IS_USMALLINT (-7)
-#define SQL_IS_SMALLINT (-8)
-#endif /* ODBCVER >= 0x0300 */
-/* the value of SQL_ATTR_PARAM_BIND_TYPE */
+/*
+ * Special length values for attributes
+ */
#if (ODBCVER >= 0x0300)
-#define SQL_PARAM_BIND_BY_COLUMN 0UL
-#define SQL_PARAM_BIND_TYPE_DEFAULT SQL_PARAM_BIND_BY_COLUMN
-#endif /* ODBCVER >= 0x0300 */
-
-/* SQL_QUERY_TIMEOUT options */
-#define SQL_QUERY_TIMEOUT_DEFAULT 0UL
-
-/* SQL_MAX_ROWS options */
-#define SQL_MAX_ROWS_DEFAULT 0UL
-
-/* SQL_NOSCAN options */
-#define SQL_NOSCAN_OFF 0UL /* 1.0 FALSE */
-#define SQL_NOSCAN_ON 1UL /* 1.0 TRUE */
-#define SQL_NOSCAN_DEFAULT SQL_NOSCAN_OFF
-
-/* SQL_MAX_LENGTH options */
-#define SQL_MAX_LENGTH_DEFAULT 0UL
-
-/* values for SQL_ATTR_ASYNC_ENABLE */
-#define SQL_ASYNC_ENABLE_OFF 0UL
-#define SQL_ASYNC_ENABLE_ON 1UL
-#define SQL_ASYNC_ENABLE_DEFAULT SQL_ASYNC_ENABLE_OFF
-
-/* SQL_BIND_TYPE options */
-#define SQL_BIND_BY_COLUMN 0UL
-#define SQL_BIND_TYPE_DEFAULT SQL_BIND_BY_COLUMN /* Default value */
-
-/* SQL_CONCURRENCY options */
-#define SQL_CONCUR_READ_ONLY 1
-#define SQL_CONCUR_LOCK 2
-#define SQL_CONCUR_ROWVER 3
-#define SQL_CONCUR_VALUES 4
-#define SQL_CONCUR_DEFAULT SQL_CONCUR_READ_ONLY /* Default value */
-
-/* SQL_CURSOR_TYPE options */
-#define SQL_CURSOR_FORWARD_ONLY 0UL
-#define SQL_CURSOR_KEYSET_DRIVEN 1UL
-#define SQL_CURSOR_DYNAMIC 2UL
-#define SQL_CURSOR_STATIC 3UL
-#define SQL_CURSOR_TYPE_DEFAULT SQL_CURSOR_FORWARD_ONLY /* Default value */
-
-/* SQL_ROWSET_SIZE options */
-#define SQL_ROWSET_SIZE_DEFAULT 1UL
-
-/* SQL_KEYSET_SIZE options */
-#define SQL_KEYSET_SIZE_DEFAULT 0UL
-
-/* SQL_SIMULATE_CURSOR options */
-#define SQL_SC_NON_UNIQUE 0UL
-#define SQL_SC_TRY_UNIQUE 1UL
-#define SQL_SC_UNIQUE 2UL
-
-/* SQL_RETRIEVE_DATA options */
-#define SQL_RD_OFF 0UL
-#define SQL_RD_ON 1UL
-#define SQL_RD_DEFAULT SQL_RD_ON
-
-/* SQL_USE_BOOKMARKS options */
-#define SQL_UB_OFF 0UL
-#define SQL_UB_ON 01UL
-#define SQL_UB_DEFAULT SQL_UB_OFF
-
-/* New values for SQL_USE_BOOKMARKS attribute */
-#if (ODBCVER >= 0x0300)
-#define SQL_UB_FIXED SQL_UB_ON
-#define SQL_UB_VARIABLE 2UL
-#endif /* ODBCVER >= 0x0300 */
-
-/* extended descriptor field */
-#if (ODBCVER >= 0x0300)
-#define SQL_DESC_ARRAY_SIZE 20
-#define SQL_DESC_ARRAY_STATUS_PTR 21
-#define SQL_DESC_AUTO_UNIQUE_VALUE SQL_COLUMN_AUTO_INCREMENT
-#define SQL_DESC_BASE_COLUMN_NAME 22
-#define SQL_DESC_BASE_TABLE_NAME 23
-#define SQL_DESC_BIND_OFFSET_PTR 24
-#define SQL_DESC_BIND_TYPE 25
-#define SQL_DESC_CASE_SENSITIVE SQL_COLUMN_CASE_SENSITIVE
-#define SQL_DESC_CATALOG_NAME SQL_COLUMN_QUALIFIER_NAME
-#define SQL_DESC_CONCISE_TYPE SQL_COLUMN_TYPE
-#define SQL_DESC_DATETIME_INTERVAL_PRECISION 26
-#define SQL_DESC_DISPLAY_SIZE SQL_COLUMN_DISPLAY_SIZE
-#define SQL_DESC_FIXED_PREC_SCALE SQL_COLUMN_MONEY
-#define SQL_DESC_LABEL SQL_COLUMN_LABEL
-#define SQL_DESC_LITERAL_PREFIX 27
-#define SQL_DESC_LITERAL_SUFFIX 28
-#define SQL_DESC_LOCAL_TYPE_NAME 29
-#define SQL_DESC_MAXIMUM_SCALE 30
-#define SQL_DESC_MINIMUM_SCALE 31
-#define SQL_DESC_NUM_PREC_RADIX 32
-#define SQL_DESC_PARAMETER_TYPE 33
-#define SQL_DESC_ROWS_PROCESSED_PTR 34
-#if (ODBCVER >= 0x0350)
-#define SQL_DESC_ROWVER 35
-#endif /* ODBCVER >= 0x0350 */
-#define SQL_DESC_SCHEMA_NAME SQL_COLUMN_OWNER_NAME
-#define SQL_DESC_SEARCHABLE SQL_COLUMN_SEARCHABLE
-#define SQL_DESC_TYPE_NAME SQL_COLUMN_TYPE_NAME
-#define SQL_DESC_TABLE_NAME SQL_COLUMN_TABLE_NAME
-#define SQL_DESC_UNSIGNED SQL_COLUMN_UNSIGNED
-#define SQL_DESC_UPDATABLE SQL_COLUMN_UPDATABLE
-#endif /* ODBCVER >= 0x0300 */
-
+#define SQL_IS_POINTER (-4)
+#define SQL_IS_UINTEGER (-5)
+#define SQL_IS_INTEGER (-6)
+#define SQL_IS_USMALLINT (-7)
+#define SQL_IS_SMALLINT (-8)
+#endif /* ODBCVER >= 0x0300 */
-/* defines for diagnostics fields */
-#if (ODBCVER >= 0x0300)
-#define SQL_DIAG_CURSOR_ROW_COUNT (-1249)
-#define SQL_DIAG_ROW_NUMBER (-1248)
-#define SQL_DIAG_COLUMN_NUMBER (-1247)
-#endif /* ODBCVER >= 0x0300 */
-/* SQL extended datatypes */
-#define SQL_DATE 9
+/*
+ * SQL extended datatypes
+ */
+#define SQL_DATE 9
#if (ODBCVER >= 0x0300)
-#define SQL_INTERVAL 10
-#endif /* ODBCVER >= 0x0300 */
-#define SQL_TIME 10
-#define SQL_TIMESTAMP 11
-#define SQL_LONGVARCHAR (-1)
-#define SQL_BINARY (-2)
-#define SQL_VARBINARY (-3)
-#define SQL_LONGVARBINARY (-4)
-#define SQL_BIGINT (-5)
-#define SQL_TINYINT (-6)
-#define SQL_BIT (-7)
+#define SQL_INTERVAL 10
+#endif /* ODBCVER >= 0x0300 */
+#define SQL_TIME 10
+#define SQL_TIMESTAMP 11
+#define SQL_LONGVARCHAR (-1)
+#define SQL_BINARY (-2)
+#define SQL_VARBINARY (-3)
+#define SQL_LONGVARBINARY (-4)
+#define SQL_BIGINT (-5)
+#define SQL_TINYINT (-6)
+#define SQL_BIT (-7)
#if (ODBCVER >= 0x0350)
#define SQL_GUID (-11)
-#endif /* ODBCVER >= 0x0350 */
+#endif /* ODBCVER >= 0x0350 */
+
+/*
+ * SQL Interval datatypes
+ */
#if (ODBCVER >= 0x0300)
-/* interval code */
#define SQL_CODE_YEAR 1
#define SQL_CODE_MONTH 2
#define SQL_CODE_DAY 3
@@ -425,1362 +168,2013 @@ extern "C" { /*
#define SQL_CODE_HOUR_TO_SECOND 12
#define SQL_CODE_MINUTE_TO_SECOND 13
-#define SQL_INTERVAL_YEAR (100 + SQL_CODE_YEAR)
-#define SQL_INTERVAL_MONTH (100 + SQL_CODE_MONTH)
-#define SQL_INTERVAL_DAY (100 + SQL_CODE_DAY)
-#define SQL_INTERVAL_HOUR (100 + SQL_CODE_HOUR)
-#define SQL_INTERVAL_MINUTE (100 + SQL_CODE_MINUTE)
-#define SQL_INTERVAL_SECOND (100 + SQL_CODE_SECOND)
-#define SQL_INTERVAL_YEAR_TO_MONTH (100 + SQL_CODE_YEAR_TO_MONTH)
-#define SQL_INTERVAL_DAY_TO_HOUR (100 + SQL_CODE_DAY_TO_HOUR)
-#define SQL_INTERVAL_DAY_TO_MINUTE (100 + SQL_CODE_DAY_TO_MINUTE)
-#define SQL_INTERVAL_DAY_TO_SECOND (100 + SQL_CODE_DAY_TO_SECOND)
-#define SQL_INTERVAL_HOUR_TO_MINUTE (100 + SQL_CODE_HOUR_TO_MINUTE)
-#define SQL_INTERVAL_HOUR_TO_SECOND (100 + SQL_CODE_HOUR_TO_SECOND)
+#define SQL_INTERVAL_YEAR (100 + SQL_CODE_YEAR)
+#define SQL_INTERVAL_MONTH (100 + SQL_CODE_MONTH)
+#define SQL_INTERVAL_DAY (100 + SQL_CODE_DAY)
+#define SQL_INTERVAL_HOUR (100 + SQL_CODE_HOUR)
+#define SQL_INTERVAL_MINUTE (100 + SQL_CODE_MINUTE)
+#define SQL_INTERVAL_SECOND (100 + SQL_CODE_SECOND)
+#define SQL_INTERVAL_YEAR_TO_MONTH (100 + SQL_CODE_YEAR_TO_MONTH)
+#define SQL_INTERVAL_DAY_TO_HOUR (100 + SQL_CODE_DAY_TO_HOUR)
+#define SQL_INTERVAL_DAY_TO_MINUTE (100 + SQL_CODE_DAY_TO_MINUTE)
+#define SQL_INTERVAL_DAY_TO_SECOND (100 + SQL_CODE_DAY_TO_SECOND)
+#define SQL_INTERVAL_HOUR_TO_MINUTE (100 + SQL_CODE_HOUR_TO_MINUTE)
+#define SQL_INTERVAL_HOUR_TO_SECOND (100 + SQL_CODE_HOUR_TO_SECOND)
#define SQL_INTERVAL_MINUTE_TO_SECOND (100 + SQL_CODE_MINUTE_TO_SECOND)
-
#else
-#define SQL_INTERVAL_YEAR (-80)
-#define SQL_INTERVAL_MONTH (-81)
-#define SQL_INTERVAL_YEAR_TO_MONTH (-82)
-#define SQL_INTERVAL_DAY (-83)
-#define SQL_INTERVAL_HOUR (-84)
-#define SQL_INTERVAL_MINUTE (-85)
-#define SQL_INTERVAL_SECOND (-86)
-#define SQL_INTERVAL_DAY_TO_HOUR (-87)
-#define SQL_INTERVAL_DAY_TO_MINUTE (-88)
-#define SQL_INTERVAL_DAY_TO_SECOND (-89)
-#define SQL_INTERVAL_HOUR_TO_MINUTE (-90)
-#define SQL_INTERVAL_HOUR_TO_SECOND (-91)
-#define SQL_INTERVAL_MINUTE_TO_SECOND (-92)
-#endif /* ODBCVER >= 0x0300 */
+#define SQL_INTERVAL_YEAR (-80)
+#define SQL_INTERVAL_MONTH (-81)
+#define SQL_INTERVAL_YEAR_TO_MONTH (-82)
+#define SQL_INTERVAL_DAY (-83)
+#define SQL_INTERVAL_HOUR (-84)
+#define SQL_INTERVAL_MINUTE (-85)
+#define SQL_INTERVAL_SECOND (-86)
+#define SQL_INTERVAL_DAY_TO_HOUR (-87)
+#define SQL_INTERVAL_DAY_TO_MINUTE (-88)
+#define SQL_INTERVAL_DAY_TO_SECOND (-89)
+#define SQL_INTERVAL_HOUR_TO_MINUTE (-90)
+#define SQL_INTERVAL_HOUR_TO_SECOND (-91)
+#define SQL_INTERVAL_MINUTE_TO_SECOND (-92)
+#endif /* ODBCVER >= 0x0300 */
+/*
+ * SQL unicode data types
+ */
#if (ODBCVER <= 0x0300)
-#define SQL_UNICODE (-95)
-#define SQL_UNICODE_VARCHAR (-96)
-#define SQL_UNICODE_LONGVARCHAR (-97)
-#define SQL_UNICODE_CHAR SQL_UNICODE
+/* These definitions are historical and obsolete */
+#define SQL_UNICODE (-95)
+#define SQL_UNICODE_VARCHAR (-96)
+#define SQL_UNICODE_LONGVARCHAR (-97)
+#define SQL_UNICODE_CHAR SQL_UNICODE
#else
-/* The previous definitions for SQL_UNICODE_ are historical and obsolete */
+#define SQL_UNICODE SQL_WCHAR
+#define SQL_UNICODE_VARCHAR SQL_WVARCHAR
+#define SQL_UNICODE_LONGVARCHAR SQL_WLONGVARCHAR
+#define SQL_UNICODE_CHAR SQL_WCHAR
+#endif /* ODBCVER >= 0x0300 */
-#define SQL_UNICODE SQL_WCHAR
-#define SQL_UNICODE_VARCHAR SQL_WVARCHAR
-#define SQL_UNICODE_LONGVARCHAR SQL_WLONGVARCHAR
-#define SQL_UNICODE_CHAR SQL_WCHAR
-#endif
#if (ODBCVER < 0x0300)
-#define SQL_TYPE_DRIVER_START SQL_INTERVAL_YEAR
-#define SQL_TYPE_DRIVER_END SQL_UNICODE_LONGVARCHAR
-#endif /* ODBCVER < 0x0300 */
-
-/* C datatype to SQL datatype mapping SQL types
- ------------------- */
-#define SQL_C_CHAR SQL_CHAR /* CHAR, VARCHAR, DECIMAL, NUMERIC */
-#define SQL_C_LONG SQL_INTEGER /* INTEGER */
-#define SQL_C_SHORT SQL_SMALLINT /* SMALLINT */
-#define SQL_C_FLOAT SQL_REAL /* REAL */
-#define SQL_C_DOUBLE SQL_DOUBLE /* FLOAT, DOUBLE */
-#if (ODBCVER >= 0x0300)
-#define SQL_C_NUMERIC SQL_NUMERIC
-#endif /* ODBCVER >= 0x0300 */
-#define SQL_C_DEFAULT 99
-
-#define SQL_SIGNED_OFFSET (-20)
-#define SQL_UNSIGNED_OFFSET (-22)
-
-/* C datatype to SQL datatype mapping */
-#define SQL_C_DATE SQL_DATE
-#define SQL_C_TIME SQL_TIME
-#define SQL_C_TIMESTAMP SQL_TIMESTAMP
+#define SQL_TYPE_DRIVER_START SQL_INTERVAL_YEAR
+#define SQL_TYPE_DRIVER_END SQL_UNICODE_LONGVARCHAR
+#endif /* ODBCVER < 0x0300 */
+
+
+#define SQL_SIGNED_OFFSET (-20)
+#define SQL_UNSIGNED_OFFSET (-22)
+
+
+/*
+ * C datatype to SQL datatype mapping
+ */
+#define SQL_C_CHAR SQL_CHAR
+#define SQL_C_LONG SQL_INTEGER
+#define SQL_C_SHORT SQL_SMALLINT
+#define SQL_C_FLOAT SQL_REAL
+#define SQL_C_DOUBLE SQL_DOUBLE
+#if (ODBCVER >= 0x0300)
+#define SQL_C_NUMERIC SQL_NUMERIC
+#endif /* ODBCVER >= 0x0300 */
+#define SQL_C_DEFAULT 99
+
+
+#define SQL_C_DATE SQL_DATE
+#define SQL_C_TIME SQL_TIME
+#define SQL_C_TIMESTAMP SQL_TIMESTAMP
+#define SQL_C_BINARY SQL_BINARY
+#define SQL_C_BIT SQL_BIT
+#define SQL_C_TINYINT SQL_TINYINT
+#define SQL_C_SLONG (SQL_C_LONG+SQL_SIGNED_OFFSET)
+#define SQL_C_SSHORT (SQL_C_SHORT+SQL_SIGNED_OFFSET)
+#define SQL_C_STINYINT (SQL_TINYINT+SQL_SIGNED_OFFSET)
+#define SQL_C_ULONG (SQL_C_LONG+SQL_UNSIGNED_OFFSET)
+#define SQL_C_USHORT (SQL_C_SHORT+SQL_UNSIGNED_OFFSET)
+#define SQL_C_UTINYINT (SQL_TINYINT+SQL_UNSIGNED_OFFSET)
+
+#if defined(_WIN64)
+#define SQL_C_BOOKMARK SQL_C_UBIGINT
+#else
+#define SQL_C_BOOKMARK SQL_C_ULONG
+#endif
+
#if (ODBCVER >= 0x0300)
-#define SQL_C_TYPE_DATE SQL_TYPE_DATE
-#define SQL_C_TYPE_TIME SQL_TYPE_TIME
+#define SQL_C_TYPE_DATE SQL_TYPE_DATE
+#define SQL_C_TYPE_TIME SQL_TYPE_TIME
#define SQL_C_TYPE_TIMESTAMP SQL_TYPE_TIMESTAMP
-#define SQL_C_INTERVAL_YEAR SQL_INTERVAL_YEAR
+#define SQL_C_INTERVAL_YEAR SQL_INTERVAL_YEAR
#define SQL_C_INTERVAL_MONTH SQL_INTERVAL_MONTH
-#define SQL_C_INTERVAL_DAY SQL_INTERVAL_DAY
-#define SQL_C_INTERVAL_HOUR SQL_INTERVAL_HOUR
+#define SQL_C_INTERVAL_DAY SQL_INTERVAL_DAY
+#define SQL_C_INTERVAL_HOUR SQL_INTERVAL_HOUR
#define SQL_C_INTERVAL_MINUTE SQL_INTERVAL_MINUTE
#define SQL_C_INTERVAL_SECOND SQL_INTERVAL_SECOND
-#define SQL_C_INTERVAL_YEAR_TO_MONTH SQL_INTERVAL_YEAR_TO_MONTH
+#define SQL_C_INTERVAL_YEAR_TO_MONTH SQL_INTERVAL_YEAR_TO_MONTH
#define SQL_C_INTERVAL_DAY_TO_HOUR SQL_INTERVAL_DAY_TO_HOUR
-#define SQL_C_INTERVAL_DAY_TO_MINUTE SQL_INTERVAL_DAY_TO_MINUTE
-#define SQL_C_INTERVAL_DAY_TO_SECOND SQL_INTERVAL_DAY_TO_SECOND
-#define SQL_C_INTERVAL_HOUR_TO_MINUTE SQL_INTERVAL_HOUR_TO_MINUTE
-#define SQL_C_INTERVAL_HOUR_TO_SECOND SQL_INTERVAL_HOUR_TO_SECOND
-#define SQL_C_INTERVAL_MINUTE_TO_SECOND SQL_INTERVAL_MINUTE_TO_SECOND
-#endif /* ODBCVER >= 0x0300 */
-#define SQL_C_BINARY SQL_BINARY
-#define SQL_C_BIT SQL_BIT
-#if (ODBCVER >= 0x0300)
-#define SQL_C_SBIGINT (SQL_BIGINT+SQL_SIGNED_OFFSET) /* SIGNED BIGINT */
-#define SQL_C_UBIGINT (SQL_BIGINT+SQL_UNSIGNED_OFFSET) /* UNSIGNED BIGINT */
-#endif /* ODBCVER >= 0x0300 */
-#define SQL_C_TINYINT SQL_TINYINT
-#define SQL_C_SLONG (SQL_C_LONG+SQL_SIGNED_OFFSET) /* SIGNED INTEGER */
-#define SQL_C_SSHORT (SQL_C_SHORT+SQL_SIGNED_OFFSET) /* SIGNED SMALLINT */
-#define SQL_C_STINYINT (SQL_TINYINT+SQL_SIGNED_OFFSET) /* SIGNED TINYINT */
-#define SQL_C_ULONG (SQL_C_LONG+SQL_UNSIGNED_OFFSET) /* UNSIGNED INTEGER*/
-#define SQL_C_USHORT (SQL_C_SHORT+SQL_UNSIGNED_OFFSET) /* UNSIGNED SMALLINT*/
-#define SQL_C_UTINYINT (SQL_TINYINT+SQL_UNSIGNED_OFFSET) /* UNSIGNED TINYINT*/
+#define SQL_C_INTERVAL_DAY_TO_MINUTE SQL_INTERVAL_DAY_TO_MINUTE
+#define SQL_C_INTERVAL_DAY_TO_SECOND SQL_INTERVAL_DAY_TO_SECOND
+#define SQL_C_INTERVAL_HOUR_TO_MINUTE SQL_INTERVAL_HOUR_TO_MINUTE
+#define SQL_C_INTERVAL_HOUR_TO_SECOND SQL_INTERVAL_HOUR_TO_SECOND
+#define SQL_C_INTERVAL_MINUTE_TO_SECOND SQL_INTERVAL_MINUTE_TO_SECOND
+#define SQL_C_SBIGINT (SQL_BIGINT+SQL_SIGNED_OFFSET)
+#define SQL_C_UBIGINT (SQL_BIGINT+SQL_UNSIGNED_OFFSET)
+#define SQL_C_VARBOOKMARK SQL_C_BINARY
+#endif /* ODBCVER >= 0x0300 */
-#if (ODBCVER >= 0x0300) && (SIZEOF_LONG_INT == 8) && !defined(BUILD_LEGACY_64_BIT_MODE)
-#define SQL_C_BOOKMARK SQL_C_UBIGINT /* BOOKMARK */
-#else
-#define SQL_C_BOOKMARK SQL_C_ULONG /* BOOKMARK */
+#if (ODBCVER >= 0x0350)
+#define SQL_C_GUID SQL_GUID
#endif
-#if (ODBCVER >= 0x0350)
-#define SQL_C_GUID SQL_GUID
-#endif /* ODBCVER >= 0x0350 */
+#define SQL_TYPE_NULL 0
-#define SQL_TYPE_NULL 0
#if (ODBCVER < 0x0300)
-#define SQL_TYPE_MIN SQL_BIT
-#define SQL_TYPE_MAX SQL_VARCHAR
-#endif
+#define SQL_TYPE_MIN SQL_BIT
+#define SQL_TYPE_MAX SQL_VARCHAR
+#endif /* ODBCVER < 0x0300 */
-#if (ODBCVER >= 0x0300)
-#define SQL_C_VARBOOKMARK SQL_C_BINARY
-#endif /* ODBCVER >= 0x0300 */
-/* define for SQL_DIAG_ROW_NUMBER and SQL_DIAG_COLUMN_NUMBER */
-#if (ODBCVER >= 0x0300)
-#define SQL_NO_ROW_NUMBER (-1)
-#define SQL_NO_COLUMN_NUMBER (-1)
-#define SQL_ROW_NUMBER_UNKNOWN (-2)
-#define SQL_COLUMN_NUMBER_UNKNOWN (-2)
-#endif
+/*
+ * ----------------------------------------------------------------------
+ * Level 1 Functions
+ * ----------------------------------------------------------------------
+ */
-/* SQLBindParameter extensions */
-#define SQL_DEFAULT_PARAM (-5)
-#define SQL_IGNORE (-6)
+/*
+ * SQLBindParameter
+ */
+#define SQL_DEFAULT_PARAM (-5)
+#define SQL_IGNORE (-6)
#if (ODBCVER >= 0x0300)
#define SQL_COLUMN_IGNORE SQL_IGNORE
-#endif /* ODBCVER >= 0x0300 */
-#define SQL_LEN_DATA_AT_EXEC_OFFSET (-100)
-#define SQL_LEN_DATA_AT_EXEC(length) (-(length)+SQL_LEN_DATA_AT_EXEC_OFFSET)
+#endif /* ODBCVER >= 0x0300 */
+#define SQL_LEN_DATA_AT_EXEC_OFFSET (-100)
+#define SQL_LEN_DATA_AT_EXEC(length) (-(length)+SQL_LEN_DATA_AT_EXEC_OFFSET)
-/* binary length for driver specific attributes */
-#define SQL_LEN_BINARY_ATTR_OFFSET (-100)
+
+/*
+ * binary length for driver specific attributes
+ */
+#define SQL_LEN_BINARY_ATTR_OFFSET (-100)
#define SQL_LEN_BINARY_ATTR(length) (-(length)+SQL_LEN_BINARY_ATTR_OFFSET)
-/* Defines used by Driver Manager when mapping SQLSetParam to SQLBindParameter
-*/
-#define SQL_PARAM_TYPE_DEFAULT SQL_PARAM_INPUT_OUTPUT
-#define SQL_SETPARAM_VALUE_MAX (-1L)
-
-/* SQLColAttributes defines */
-#define SQL_COLUMN_COUNT 0
-#define SQL_COLUMN_NAME 1
-#define SQL_COLUMN_TYPE 2
-#define SQL_COLUMN_LENGTH 3
-#define SQL_COLUMN_PRECISION 4
-#define SQL_COLUMN_SCALE 5
-#define SQL_COLUMN_DISPLAY_SIZE 6
-#define SQL_COLUMN_NULLABLE 7
-#define SQL_COLUMN_UNSIGNED 8
-#define SQL_COLUMN_MONEY 9
-#define SQL_COLUMN_UPDATABLE 10
-#define SQL_COLUMN_AUTO_INCREMENT 11
-#define SQL_COLUMN_CASE_SENSITIVE 12
-#define SQL_COLUMN_SEARCHABLE 13
-#define SQL_COLUMN_TYPE_NAME 14
-#define SQL_COLUMN_TABLE_NAME 15
-#define SQL_COLUMN_OWNER_NAME 16
-#define SQL_COLUMN_QUALIFIER_NAME 17
-#define SQL_COLUMN_LABEL 18
-#define SQL_COLATT_OPT_MAX SQL_COLUMN_LABEL
+
+/*
+ * SQLColAttributes - ODBC 2.x defines
+ */
+#define SQL_COLUMN_COUNT 0
+#define SQL_COLUMN_NAME 1
+#define SQL_COLUMN_TYPE 2
+#define SQL_COLUMN_LENGTH 3
+#define SQL_COLUMN_PRECISION 4
+#define SQL_COLUMN_SCALE 5
+#define SQL_COLUMN_DISPLAY_SIZE 6
+#define SQL_COLUMN_NULLABLE 7
+#define SQL_COLUMN_UNSIGNED 8
+#define SQL_COLUMN_MONEY 9
+#define SQL_COLUMN_UPDATABLE 10
+#define SQL_COLUMN_AUTO_INCREMENT 11
+#define SQL_COLUMN_CASE_SENSITIVE 12
+#define SQL_COLUMN_SEARCHABLE 13
+#define SQL_COLUMN_TYPE_NAME 14
+#define SQL_COLUMN_TABLE_NAME 15
+#define SQL_COLUMN_OWNER_NAME 16
+#define SQL_COLUMN_QUALIFIER_NAME 17
+#define SQL_COLUMN_LABEL 18
+#define SQL_COLATT_OPT_MAX SQL_COLUMN_LABEL
#if (ODBCVER < 0x0300)
-#define SQL_COLUMN_DRIVER_START 1000
-#endif /* ODBCVER < 0x0300 */
+#define SQL_COLUMN_DRIVER_START 1000
+#endif /* ODBCVER < 0x0300 */
-#define SQL_COLATT_OPT_MIN SQL_COLUMN_COUNT
+#define SQL_COLATT_OPT_MIN SQL_COLUMN_COUNT
-/* SQLColAttributes subdefines for SQL_COLUMN_UPDATABLE */
-#define SQL_ATTR_READONLY 0
-#define SQL_ATTR_WRITE 1
-#define SQL_ATTR_READWRITE_UNKNOWN 2
-/* SQLColAttributes subdefines for SQL_COLUMN_SEARCHABLE */
-/* These are also used by SQLGetInfo */
-#define SQL_UNSEARCHABLE 0
-#define SQL_LIKE_ONLY 1
-#define SQL_ALL_EXCEPT_LIKE 2
-#define SQL_SEARCHABLE 3
-#define SQL_PRED_SEARCHABLE SQL_SEARCHABLE
+/*
+ * SQLColAttributes - SQL_COLUMN_UPDATABLE
+ */
+#define SQL_ATTR_READONLY 0
+#define SQL_ATTR_WRITE 1
+#define SQL_ATTR_READWRITE_UNKNOWN 2
-/* Special return values for SQLGetData */
-#define SQL_NO_TOTAL (-4)
+/*
+ * SQLColAttributes - SQL_COLUMN_SEARCHABLE
+ */
+#define SQL_UNSEARCHABLE 0
+#define SQL_LIKE_ONLY 1
+#define SQL_ALL_EXCEPT_LIKE 2
+#define SQL_SEARCHABLE 3
+#define SQL_PRED_SEARCHABLE SQL_SEARCHABLE
-/********************************************/
-/* SQLGetFunctions: additional values for */
-/* fFunction to represent functions that */
-/* are not in the X/Open spec. */
-/********************************************/
+/*
+ * SQLDataSources - additional fetch directions
+ */
#if (ODBCVER >= 0x0300)
-#define SQL_API_SQLALLOCHANDLESTD 73
-#define SQL_API_SQLBULKOPERATIONS 24
-#endif /* ODBCVER >= 0x0300 */
-#define SQL_API_SQLBINDPARAMETER 72
-#define SQL_API_SQLBROWSECONNECT 55
-#define SQL_API_SQLCOLATTRIBUTES 6
-#define SQL_API_SQLCOLUMNPRIVILEGES 56
-#define SQL_API_SQLDESCRIBEPARAM 58
-#define SQL_API_SQLDRIVERCONNECT 41
-#define SQL_API_SQLDRIVERS 71
-#define SQL_API_SQLEXTENDEDFETCH 59
-#define SQL_API_SQLFOREIGNKEYS 60
-#define SQL_API_SQLMORERESULTS 61
-#define SQL_API_SQLNATIVESQL 62
-#define SQL_API_SQLNUMPARAMS 63
-#define SQL_API_SQLPARAMOPTIONS 64
-#define SQL_API_SQLPRIMARYKEYS 65
-#define SQL_API_SQLPROCEDURECOLUMNS 66
-#define SQL_API_SQLPROCEDURES 67
-#define SQL_API_SQLSETPOS 68
-#define SQL_API_SQLSETSCROLLOPTIONS 69
-#define SQL_API_SQLTABLEPRIVILEGES 70
-
-/*-------------------------------------------*/
-/* SQL_EXT_API_LAST is not useful with ODBC */
-/* version 3.0 because some of the values */
-/* from X/Open are in the 10000 range. */
-/*-------------------------------------------*/
+#define SQL_FETCH_FIRST_USER 31
+#define SQL_FETCH_FIRST_SYSTEM 32
+#endif /* ODBCVER >= 0x0300 */
-#if (ODBCVER < 0x0300)
-#define SQL_EXT_API_LAST SQL_API_SQLBINDPARAMETER
-#define SQL_NUM_FUNCTIONS 23
-#define SQL_EXT_API_START 40
-#define SQL_NUM_EXTENSIONS (SQL_EXT_API_LAST-SQL_EXT_API_START+1)
-#endif
-/*--------------------------------------------*/
-/* SQL_API_ALL_FUNCTIONS returns an array */
-/* of 'booleans' representing whether a */
-/* function is implemented by the driver. */
-/* */
-/* CAUTION: Only functions defined in ODBC */
-/* version 2.0 and earlier are returned, the */
-/* new high-range function numbers defined by */
-/* X/Open break this scheme. See the new */
-/* method -- SQL_API_ODBC3_ALL_FUNCTIONS */
-/*--------------------------------------------*/
-
-#define SQL_API_ALL_FUNCTIONS 0 /* See CAUTION above */
-
-/*----------------------------------------------*/
-/* 2.X drivers export a dummy function with */
-/* ordinal number SQL_API_LOADBYORDINAL to speed*/
-/* loading under the windows operating system. */
-/* */
-/* CAUTION: Loading by ordinal is not supported */
-/* for 3.0 and above drivers. */
-/*----------------------------------------------*/
-
-#define SQL_API_LOADBYORDINAL 199 /* See CAUTION above */
-
-/*----------------------------------------------*/
-/* SQL_API_ODBC3_ALL_FUNCTIONS */
-/* This returns a bitmap, which allows us to */
-/* handle the higher-valued function numbers. */
-/* Use SQL_FUNC_EXISTS(bitmap,function_number) */
-/* to determine if the function exists. */
-/*----------------------------------------------*/
-
-
-#if (ODBCVER >= 0x0300)
-#define SQL_API_ODBC3_ALL_FUNCTIONS 999
-#define SQL_API_ODBC3_ALL_FUNCTIONS_SIZE 250 /* array of 250 words */
-
-
-#define SQL_FUNC_EXISTS(pfExists, uwAPI) ((*(((UWORD*) (pfExists)) + ((uwAPI) >> 4)) & (1 << ((uwAPI) & 0x000F)) ) ? SQL_TRUE : SQL_FALSE )
-
-#endif /* ODBCVER >= 0x0300 */
-
-
-/************************************************/
-/* Extended definitions for SQLGetInfo */
-/************************************************/
-
-/*---------------------------------*/
-/* Values in ODBC 2.0 that are not */
-/* in the X/Open spec */
-/*---------------------------------*/
-
-#define SQL_INFO_FIRST 0
-#define SQL_ACTIVE_CONNECTIONS 0 /* MAX_DRIVER_CONNECTIONS */
-#define SQL_ACTIVE_STATEMENTS 1 /* MAX_CONCURRENT_ACTIVITIES */
-#define SQL_DRIVER_HDBC 3
-#define SQL_DRIVER_HENV 4
-#define SQL_DRIVER_HSTMT 5
-#define SQL_DRIVER_NAME 6
-#define SQL_DRIVER_VER 7
-#define SQL_ODBC_API_CONFORMANCE 9
-#define SQL_ODBC_VER 10
-#define SQL_ROW_UPDATES 11
-#define SQL_ODBC_SAG_CLI_CONFORMANCE 12
-#define SQL_ODBC_SQL_CONFORMANCE 15
-#define SQL_PROCEDURES 21
-#define SQL_CONCAT_NULL_BEHAVIOR 22
-#define SQL_CURSOR_ROLLBACK_BEHAVIOR 24
-#define SQL_EXPRESSIONS_IN_ORDERBY 27
-#define SQL_MAX_OWNER_NAME_LEN 32 /* MAX_SCHEMA_NAME_LEN */
-#define SQL_MAX_PROCEDURE_NAME_LEN 33
-#define SQL_MAX_QUALIFIER_NAME_LEN 34 /* MAX_CATALOG_NAME_LEN */
-#define SQL_MULT_RESULT_SETS 36
-#define SQL_MULTIPLE_ACTIVE_TXN 37
-#define SQL_OUTER_JOINS 38
-#define SQL_OWNER_TERM 39
-#define SQL_PROCEDURE_TERM 40
-#define SQL_QUALIFIER_NAME_SEPARATOR 41
-#define SQL_QUALIFIER_TERM 42
-#define SQL_SCROLL_OPTIONS 44
-#define SQL_TABLE_TERM 45
-#define SQL_CONVERT_FUNCTIONS 48
-#define SQL_NUMERIC_FUNCTIONS 49
-#define SQL_STRING_FUNCTIONS 50
-#define SQL_SYSTEM_FUNCTIONS 51
-#define SQL_TIMEDATE_FUNCTIONS 52
-#define SQL_CONVERT_BIGINT 53
-#define SQL_CONVERT_BINARY 54
-#define SQL_CONVERT_BIT 55
-#define SQL_CONVERT_CHAR 56
-#define SQL_CONVERT_DATE 57
-#define SQL_CONVERT_DECIMAL 58
-#define SQL_CONVERT_DOUBLE 59
-#define SQL_CONVERT_FLOAT 60
-#define SQL_CONVERT_INTEGER 61
-#define SQL_CONVERT_LONGVARCHAR 62
-#define SQL_CONVERT_NUMERIC 63
-#define SQL_CONVERT_REAL 64
-#define SQL_CONVERT_SMALLINT 65
-#define SQL_CONVERT_TIME 66
-#define SQL_CONVERT_TIMESTAMP 67
-#define SQL_CONVERT_TINYINT 68
-#define SQL_CONVERT_VARBINARY 69
-#define SQL_CONVERT_VARCHAR 70
-#define SQL_CONVERT_LONGVARBINARY 71
-#define SQL_CONVERT_GUID 173
-#define SQL_ODBC_SQL_OPT_IEF 73 /* SQL_INTEGRITY */
-#define SQL_CORRELATION_NAME 74
-#define SQL_NON_NULLABLE_COLUMNS 75
-#define SQL_DRIVER_HLIB 76
-#define SQL_DRIVER_ODBC_VER 77
-#define SQL_LOCK_TYPES 78
-#define SQL_POS_OPERATIONS 79
-#define SQL_POSITIONED_STATEMENTS 80
-#define SQL_BOOKMARK_PERSISTENCE 82
-#define SQL_STATIC_SENSITIVITY 83
-#define SQL_FILE_USAGE 84
-#define SQL_COLUMN_ALIAS 87
-#define SQL_GROUP_BY 88
-#define SQL_KEYWORDS 89
-#define SQL_OWNER_USAGE 91
-#define SQL_QUALIFIER_USAGE 92
-#define SQL_QUOTED_IDENTIFIER_CASE 93
-#define SQL_SUBQUERIES 95
-#define SQL_UNION 96
-#define SQL_MAX_ROW_SIZE_INCLUDES_LONG 103
-#define SQL_MAX_CHAR_LITERAL_LEN 108
-#define SQL_TIMEDATE_ADD_INTERVALS 109
-#define SQL_TIMEDATE_DIFF_INTERVALS 110
-#define SQL_NEED_LONG_DATA_LEN 111
-#define SQL_MAX_BINARY_LITERAL_LEN 112
-#define SQL_LIKE_ESCAPE_CLAUSE 113
-#define SQL_QUALIFIER_LOCATION 114
+/*
+ * SQLDriverConnect
+ */
+#define SQL_DRIVER_NOPROMPT 0
+#define SQL_DRIVER_COMPLETE 1
+#define SQL_DRIVER_PROMPT 2
+#define SQL_DRIVER_COMPLETE_REQUIRED 3
-#if (ODBCVER >= 0x0201 && ODBCVER < 0x0300)
-#ifndef SQL_OJ_CAPABILITIES
-#define SQL_OJ_CAPABILITIES 65003 /* Temp value until ODBC 3.0 */
-#endif
-#endif /* ODBCVER >= 0x0201 && ODBCVER < 0x0300 */
-/*----------------------------------------------*/
-/* SQL_INFO_LAST and SQL_INFO_DRIVER_START are */
-/* not useful anymore, because X/Open has */
-/* values in the 10000 range. You */
-/* must contact X/Open directly to get a range */
-/* of numbers for driver-specific values. */
-/*----------------------------------------------*/
+/*
+ * SQLGetConnectAttr - ODBC 2.x attributes
+ */
+#define SQL_ACCESS_MODE 101
+#define SQL_AUTOCOMMIT 102
+#define SQL_LOGIN_TIMEOUT 103
+#define SQL_OPT_TRACE 104
+#define SQL_OPT_TRACEFILE 105
+#define SQL_TRANSLATE_DLL 106
+#define SQL_TRANSLATE_OPTION 107
+#define SQL_TXN_ISOLATION 108
+#define SQL_CURRENT_QUALIFIER 109
+#define SQL_ODBC_CURSORS 110
+#define SQL_QUIET_MODE 111
+#define SQL_PACKET_SIZE 112
-#if (ODBCVER < 0x0300)
-#define SQL_INFO_LAST SQL_QUALIFIER_LOCATION
-#define SQL_INFO_DRIVER_START 1000
-#endif /* ODBCVER < 0x0300 */
-
-/*-----------------------------------------------*/
-/* ODBC 3.0 SQLGetInfo values that are not part */
-/* of the X/Open standard at this time. X/Open */
-/* standard values are in sql.h. */
-/*-----------------------------------------------*/
-
-#if (ODBCVER >= 0x0300)
-#define SQL_ACTIVE_ENVIRONMENTS 116
-#define SQL_ALTER_DOMAIN 117
-
-#define SQL_SQL_CONFORMANCE 118
-#define SQL_DATETIME_LITERALS 119
-
-#define SQL_ASYNC_MODE 10021 /* new X/Open spec */
-#define SQL_BATCH_ROW_COUNT 120
-#define SQL_BATCH_SUPPORT 121
-#define SQL_CATALOG_LOCATION SQL_QUALIFIER_LOCATION
-#define SQL_CATALOG_NAME_SEPARATOR SQL_QUALIFIER_NAME_SEPARATOR
-#define SQL_CATALOG_TERM SQL_QUALIFIER_TERM
-#define SQL_CATALOG_USAGE SQL_QUALIFIER_USAGE
-#define SQL_CONVERT_WCHAR 122
-#define SQL_CONVERT_INTERVAL_DAY_TIME 123
-#define SQL_CONVERT_INTERVAL_YEAR_MONTH 124
-#define SQL_CONVERT_WLONGVARCHAR 125
-#define SQL_CONVERT_WVARCHAR 126
-#define SQL_CREATE_ASSERTION 127
-#define SQL_CREATE_CHARACTER_SET 128
-#define SQL_CREATE_COLLATION 129
-#define SQL_CREATE_DOMAIN 130
-#define SQL_CREATE_SCHEMA 131
-#define SQL_CREATE_TABLE 132
-#define SQL_CREATE_TRANSLATION 133
-#define SQL_CREATE_VIEW 134
-#define SQL_DRIVER_HDESC 135
-#define SQL_DROP_ASSERTION 136
-#define SQL_DROP_CHARACTER_SET 137
-#define SQL_DROP_COLLATION 138
-#define SQL_DROP_DOMAIN 139
-#define SQL_DROP_SCHEMA 140
-#define SQL_DROP_TABLE 141
-#define SQL_DROP_TRANSLATION 142
-#define SQL_DROP_VIEW 143
-#define SQL_DYNAMIC_CURSOR_ATTRIBUTES1 144
-#define SQL_DYNAMIC_CURSOR_ATTRIBUTES2 145
-#define SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES1 146
-#define SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES2 147
-#define SQL_INDEX_KEYWORDS 148
-#define SQL_INFO_SCHEMA_VIEWS 149
-#define SQL_KEYSET_CURSOR_ATTRIBUTES1 150
-#define SQL_KEYSET_CURSOR_ATTRIBUTES2 151
-#define SQL_MAX_ASYNC_CONCURRENT_STATEMENTS 10022 /* new X/Open spec */
-#define SQL_ODBC_INTERFACE_CONFORMANCE 152
-#define SQL_PARAM_ARRAY_ROW_COUNTS 153
-#define SQL_PARAM_ARRAY_SELECTS 154
-#define SQL_SCHEMA_TERM SQL_OWNER_TERM
-#define SQL_SCHEMA_USAGE SQL_OWNER_USAGE
-#define SQL_SQL92_DATETIME_FUNCTIONS 155
-#define SQL_SQL92_FOREIGN_KEY_DELETE_RULE 156
-#define SQL_SQL92_FOREIGN_KEY_UPDATE_RULE 157
-#define SQL_SQL92_GRANT 158
-#define SQL_SQL92_NUMERIC_VALUE_FUNCTIONS 159
-#define SQL_SQL92_PREDICATES 160
-#define SQL_SQL92_RELATIONAL_JOIN_OPERATORS 161
-#define SQL_SQL92_REVOKE 162
-#define SQL_SQL92_ROW_VALUE_CONSTRUCTOR 163
-#define SQL_SQL92_STRING_FUNCTIONS 164
-#define SQL_SQL92_VALUE_EXPRESSIONS 165
-#define SQL_STANDARD_CLI_CONFORMANCE 166
-#define SQL_STATIC_CURSOR_ATTRIBUTES1 167
-#define SQL_STATIC_CURSOR_ATTRIBUTES2 168
-
-#define SQL_AGGREGATE_FUNCTIONS 169
-#define SQL_DDL_INDEX 170
-#define SQL_DM_VER 171
-#define SQL_INSERT_STATEMENT 172
-#define SQL_UNION_STATEMENT SQL_UNION
-#endif /* ODBCVER >= 0x0300 */
-
-#define SQL_DTC_TRANSITION_COST 1750
-
-/* SQL_ALTER_TABLE bitmasks */
-#if (ODBCVER >= 0x0300)
-/* the following 5 bitmasks are defined in sql.h
-*#define SQL_AT_ADD_COLUMN 0x00000001L
-*#define SQL_AT_DROP_COLUMN 0x00000002L
-*#define SQL_AT_ADD_CONSTRAINT 0x00000008L
-*/
-#define SQL_AT_ADD_COLUMN_SINGLE 0x00000020L
-#define SQL_AT_ADD_COLUMN_DEFAULT 0x00000040L
-#define SQL_AT_ADD_COLUMN_COLLATION 0x00000080L
-#define SQL_AT_SET_COLUMN_DEFAULT 0x00000100L
-#define SQL_AT_DROP_COLUMN_DEFAULT 0x00000200L
-#define SQL_AT_DROP_COLUMN_CASCADE 0x00000400L
-#define SQL_AT_DROP_COLUMN_RESTRICT 0x00000800L
-#define SQL_AT_ADD_TABLE_CONSTRAINT 0x00001000L
-#define SQL_AT_DROP_TABLE_CONSTRAINT_CASCADE 0x00002000L
-#define SQL_AT_DROP_TABLE_CONSTRAINT_RESTRICT 0x00004000L
-#define SQL_AT_CONSTRAINT_NAME_DEFINITION 0x00008000L
-#define SQL_AT_CONSTRAINT_INITIALLY_DEFERRED 0x00010000L
-#define SQL_AT_CONSTRAINT_INITIALLY_IMMEDIATE 0x00020000L
-#define SQL_AT_CONSTRAINT_DEFERRABLE 0x00040000L
-#define SQL_AT_CONSTRAINT_NON_DEFERRABLE 0x00080000L
-#endif /* ODBCVER >= 0x0300 */
-/* SQL_CONVERT_* return value bitmasks */
+/*
+ * SQLGetConnectAttr - ODBC 3.0 attributes
+ */
+#if (ODBCVER >= 0x0300)
+#define SQL_ATTR_ACCESS_MODE SQL_ACCESS_MODE
+#define SQL_ATTR_AUTOCOMMIT SQL_AUTOCOMMIT
+#define SQL_ATTR_CONNECTION_TIMEOUT 113
+#define SQL_ATTR_CURRENT_CATALOG SQL_CURRENT_QUALIFIER
+#define SQL_ATTR_DISCONNECT_BEHAVIOR 114
+#define SQL_ATTR_ENLIST_IN_DTC 1207
+#define SQL_ATTR_ENLIST_IN_XA 1208
+#define SQL_ATTR_LOGIN_TIMEOUT SQL_LOGIN_TIMEOUT
+#define SQL_ATTR_ODBC_CURSORS SQL_ODBC_CURSORS
+#define SQL_ATTR_PACKET_SIZE SQL_PACKET_SIZE
+#define SQL_ATTR_QUIET_MODE SQL_QUIET_MODE
+#define SQL_ATTR_TRACE SQL_OPT_TRACE
+#define SQL_ATTR_TRACEFILE SQL_OPT_TRACEFILE
+#define SQL_ATTR_TRANSLATE_LIB SQL_TRANSLATE_DLL
+#define SQL_ATTR_TRANSLATE_OPTION SQL_TRANSLATE_OPTION
+#define SQL_ATTR_TXN_ISOLATION SQL_TXN_ISOLATION
+#endif /* ODBCVER >= 0x0300 */
-#define SQL_CVT_CHAR 0x00000001L
-#define SQL_CVT_NUMERIC 0x00000002L
-#define SQL_CVT_DECIMAL 0x00000004L
-#define SQL_CVT_INTEGER 0x00000008L
-#define SQL_CVT_SMALLINT 0x00000010L
-#define SQL_CVT_FLOAT 0x00000020L
-#define SQL_CVT_REAL 0x00000040L
-#define SQL_CVT_DOUBLE 0x00000080L
-#define SQL_CVT_VARCHAR 0x00000100L
-#define SQL_CVT_LONGVARCHAR 0x00000200L
-#define SQL_CVT_BINARY 0x00000400L
-#define SQL_CVT_VARBINARY 0x00000800L
-#define SQL_CVT_BIT 0x00001000L
-#define SQL_CVT_TINYINT 0x00002000L
-#define SQL_CVT_BIGINT 0x00004000L
-#define SQL_CVT_DATE 0x00008000L
-#define SQL_CVT_TIME 0x00010000L
-#define SQL_CVT_TIMESTAMP 0x00020000L
-#define SQL_CVT_LONGVARBINARY 0x00040000L
-#if (ODBCVER >= 0x0300)
-#define SQL_CVT_INTERVAL_YEAR_MONTH 0x00080000L
-#define SQL_CVT_INTERVAL_DAY_TIME 0x00100000L
-#define SQL_CVT_WCHAR 0x00200000L
-#define SQL_CVT_WLONGVARCHAR 0x00400000L
-#define SQL_CVT_WVARCHAR 0x00800000L
-#define SQL_CVT_GUID 0x01000000L
-
-#endif /* ODBCVER >= 0x0300 */
-
-
-/* SQL_CONVERT_FUNCTIONS functions */
-#define SQL_FN_CVT_CONVERT 0x00000001L
-#if (ODBCVER >= 0x0300)
-#define SQL_FN_CVT_CAST 0x00000002L
-#endif /* ODBCVER >= 0x0300 */
-
-
-/* SQL_STRING_FUNCTIONS functions */
-
-#define SQL_FN_STR_CONCAT 0x00000001L
-#define SQL_FN_STR_INSERT 0x00000002L
-#define SQL_FN_STR_LEFT 0x00000004L
-#define SQL_FN_STR_LTRIM 0x00000008L
-#define SQL_FN_STR_LENGTH 0x00000010L
-#define SQL_FN_STR_LOCATE 0x00000020L
-#define SQL_FN_STR_LCASE 0x00000040L
-#define SQL_FN_STR_REPEAT 0x00000080L
-#define SQL_FN_STR_REPLACE 0x00000100L
-#define SQL_FN_STR_RIGHT 0x00000200L
-#define SQL_FN_STR_RTRIM 0x00000400L
-#define SQL_FN_STR_SUBSTRING 0x00000800L
-#define SQL_FN_STR_UCASE 0x00001000L
-#define SQL_FN_STR_ASCII 0x00002000L
-#define SQL_FN_STR_CHAR 0x00004000L
-#define SQL_FN_STR_DIFFERENCE 0x00008000L
-#define SQL_FN_STR_LOCATE_2 0x00010000L
-#define SQL_FN_STR_SOUNDEX 0x00020000L
-#define SQL_FN_STR_SPACE 0x00040000L
-#if (ODBCVER >= 0x0300)
-#define SQL_FN_STR_BIT_LENGTH 0x00080000L
-#define SQL_FN_STR_CHAR_LENGTH 0x00100000L
-#define SQL_FN_STR_CHARACTER_LENGTH 0x00200000L
-#define SQL_FN_STR_OCTET_LENGTH 0x00400000L
-#define SQL_FN_STR_POSITION 0x00800000L
-#endif /* ODBCVER >= 0x0300 */
-
-/* SQL_SQL92_STRING_FUNCTIONS */
-#if (ODBCVER >= 0x0300)
-#define SQL_SSF_CONVERT 0x00000001L
-#define SQL_SSF_LOWER 0x00000002L
-#define SQL_SSF_UPPER 0x00000004L
-#define SQL_SSF_SUBSTRING 0x00000008L
-#define SQL_SSF_TRANSLATE 0x00000010L
-#define SQL_SSF_TRIM_BOTH 0x00000020L
-#define SQL_SSF_TRIM_LEADING 0x00000040L
-#define SQL_SSF_TRIM_TRAILING 0x00000080L
-#endif /* ODBCVER >= 0x0300 */
+#define SQL_ATTR_CONNECTION_DEAD 1209 /* GetConnectAttr only */
-/* SQL_NUMERIC_FUNCTIONS functions */
-#define SQL_FN_NUM_ABS 0x00000001L
-#define SQL_FN_NUM_ACOS 0x00000002L
-#define SQL_FN_NUM_ASIN 0x00000004L
-#define SQL_FN_NUM_ATAN 0x00000008L
-#define SQL_FN_NUM_ATAN2 0x00000010L
-#define SQL_FN_NUM_CEILING 0x00000020L
-#define SQL_FN_NUM_COS 0x00000040L
-#define SQL_FN_NUM_COT 0x00000080L
-#define SQL_FN_NUM_EXP 0x00000100L
-#define SQL_FN_NUM_FLOOR 0x00000200L
-#define SQL_FN_NUM_LOG 0x00000400L
-#define SQL_FN_NUM_MOD 0x00000800L
-#define SQL_FN_NUM_SIGN 0x00001000L
-#define SQL_FN_NUM_SIN 0x00002000L
-#define SQL_FN_NUM_SQRT 0x00004000L
-#define SQL_FN_NUM_TAN 0x00008000L
-#define SQL_FN_NUM_PI 0x00010000L
-#define SQL_FN_NUM_RAND 0x00020000L
-#define SQL_FN_NUM_DEGREES 0x00040000L
-#define SQL_FN_NUM_LOG10 0x00080000L
-#define SQL_FN_NUM_POWER 0x00100000L
-#define SQL_FN_NUM_RADIANS 0x00200000L
-#define SQL_FN_NUM_ROUND 0x00400000L
-#define SQL_FN_NUM_TRUNCATE 0x00800000L
-
-/* SQL_SQL92_NUMERIC_VALUE_FUNCTIONS */
-#if (ODBCVER >= 0x0300)
-#define SQL_SNVF_BIT_LENGTH 0x00000001L
-#define SQL_SNVF_CHAR_LENGTH 0x00000002L
-#define SQL_SNVF_CHARACTER_LENGTH 0x00000004L
-#define SQL_SNVF_EXTRACT 0x00000008L
-#define SQL_SNVF_OCTET_LENGTH 0x00000010L
-#define SQL_SNVF_POSITION 0x00000020L
-#endif /* ODBCVER >= 0x0300 */
-
-/* SQL_TIMEDATE_FUNCTIONS functions */
-
-#define SQL_FN_TD_NOW 0x00000001L
-#define SQL_FN_TD_CURDATE 0x00000002L
-#define SQL_FN_TD_DAYOFMONTH 0x00000004L
-#define SQL_FN_TD_DAYOFWEEK 0x00000008L
-#define SQL_FN_TD_DAYOFYEAR 0x00000010L
-#define SQL_FN_TD_MONTH 0x00000020L
-#define SQL_FN_TD_QUARTER 0x00000040L
-#define SQL_FN_TD_WEEK 0x00000080L
-#define SQL_FN_TD_YEAR 0x00000100L
-#define SQL_FN_TD_CURTIME 0x00000200L
-#define SQL_FN_TD_HOUR 0x00000400L
-#define SQL_FN_TD_MINUTE 0x00000800L
-#define SQL_FN_TD_SECOND 0x00001000L
-#define SQL_FN_TD_TIMESTAMPADD 0x00002000L
-#define SQL_FN_TD_TIMESTAMPDIFF 0x00004000L
-#define SQL_FN_TD_DAYNAME 0x00008000L
-#define SQL_FN_TD_MONTHNAME 0x00010000L
-#if (ODBCVER >= 0x0300)
-#define SQL_FN_TD_CURRENT_DATE 0x00020000L
-#define SQL_FN_TD_CURRENT_TIME 0x00040000L
-#define SQL_FN_TD_CURRENT_TIMESTAMP 0x00080000L
-#define SQL_FN_TD_EXTRACT 0x00100000L
-#endif /* ODBCVER >= 0x0300 */
-
-/* SQL_SQL92_DATETIME_FUNCTIONS */
-#if (ODBCVER >= 0x0300)
-#define SQL_SDF_CURRENT_DATE 0x00000001L
-#define SQL_SDF_CURRENT_TIME 0x00000002L
-#define SQL_SDF_CURRENT_TIMESTAMP 0x00000004L
-#endif /* ODBCVER >= 0x0300 */
+/*
+ * These options have no meaning for a 3.0 driver
+ */
+#if (ODBCVER < 0x0300)
+#define SQL_CONN_OPT_MIN SQL_ACCESS_MODE
+#define SQL_CONN_OPT_MAX SQL_PACKET_SIZE
+#define SQL_CONNECT_OPT_DRVR_START 1000
+#endif /* ODBCVER < 0x0300 */
-/* SQL_SYSTEM_FUNCTIONS functions */
-#define SQL_FN_SYS_USERNAME 0x00000001L
-#define SQL_FN_SYS_DBNAME 0x00000002L
-#define SQL_FN_SYS_IFNULL 0x00000004L
-
-/* SQL_TIMEDATE_ADD_INTERVALS and SQL_TIMEDATE_DIFF_INTERVALS functions */
-
-#define SQL_FN_TSI_FRAC_SECOND 0x00000001L
-#define SQL_FN_TSI_SECOND 0x00000002L
-#define SQL_FN_TSI_MINUTE 0x00000004L
-#define SQL_FN_TSI_HOUR 0x00000008L
-#define SQL_FN_TSI_DAY 0x00000010L
-#define SQL_FN_TSI_WEEK 0x00000020L
-#define SQL_FN_TSI_MONTH 0x00000040L
-#define SQL_FN_TSI_QUARTER 0x00000080L
-#define SQL_FN_TSI_YEAR 0x00000100L
-
-/* bitmasks for SQL_DYNAMIC_CURSOR_ATTRIBUTES1,
- * SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES1,
- * SQL_KEYSET_CURSOR_ATTRIBUTES1, and SQL_STATIC_CURSOR_ATTRIBUTES1
- */
-#if (ODBCVER >= 0x0300)
-/* supported SQLFetchScroll FetchOrientation's */
-#define SQL_CA1_NEXT 0x00000001L
-#define SQL_CA1_ABSOLUTE 0x00000002L
-#define SQL_CA1_RELATIVE 0x00000004L
-#define SQL_CA1_BOOKMARK 0x00000008L
-
-/* supported SQLSetPos LockType's */
-#define SQL_CA1_LOCK_NO_CHANGE 0x00000040L
-#define SQL_CA1_LOCK_EXCLUSIVE 0x00000080L
-#define SQL_CA1_LOCK_UNLOCK 0x00000100L
-
-/* supported SQLSetPos Operations */
-#define SQL_CA1_POS_POSITION 0x00000200L
-#define SQL_CA1_POS_UPDATE 0x00000400L
-#define SQL_CA1_POS_DELETE 0x00000800L
-#define SQL_CA1_POS_REFRESH 0x00001000L
-
-/* positioned updates and deletes */
-#define SQL_CA1_POSITIONED_UPDATE 0x00002000L
-#define SQL_CA1_POSITIONED_DELETE 0x00004000L
-#define SQL_CA1_SELECT_FOR_UPDATE 0x00008000L
+/*
+ * SQLGetConnectAttr - SQL_ACCESS_MODE
+ */
+#define SQL_MODE_READ_WRITE 0UL
+#define SQL_MODE_READ_ONLY 1UL
+#define SQL_MODE_DEFAULT SQL_MODE_READ_WRITE
-/* supported SQLBulkOperations operations */
-#define SQL_CA1_BULK_ADD 0x00010000L
-#define SQL_CA1_BULK_UPDATE_BY_BOOKMARK 0x00020000L
-#define SQL_CA1_BULK_DELETE_BY_BOOKMARK 0x00040000L
-#define SQL_CA1_BULK_FETCH_BY_BOOKMARK 0x00080000L
-#endif /* ODBCVER >= 0x0300 */
-/* bitmasks for SQL_DYNAMIC_CURSOR_ATTRIBUTES2,
- * SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES2,
- * SQL_KEYSET_CURSOR_ATTRIBUTES2, and SQL_STATIC_CURSOR_ATTRIBUTES2
+/*
+ * SQLGetConnectAttr - SQL_AUTOCOMMIT
*/
-#if (ODBCVER >= 0x0300)
-/* supported values for SQL_ATTR_SCROLL_CONCURRENCY */
-#define SQL_CA2_READ_ONLY_CONCURRENCY 0x00000001L
-#define SQL_CA2_LOCK_CONCURRENCY 0x00000002L
-#define SQL_CA2_OPT_ROWVER_CONCURRENCY 0x00000004L
-#define SQL_CA2_OPT_VALUES_CONCURRENCY 0x00000008L
+#define SQL_AUTOCOMMIT_OFF 0UL
+#define SQL_AUTOCOMMIT_ON 1UL
+#define SQL_AUTOCOMMIT_DEFAULT SQL_AUTOCOMMIT_ON
-/* sensitivity of the cursor to its own inserts, deletes, and updates */
-#define SQL_CA2_SENSITIVITY_ADDITIONS 0x00000010L
-#define SQL_CA2_SENSITIVITY_DELETIONS 0x00000020L
-#define SQL_CA2_SENSITIVITY_UPDATES 0x00000040L
-/* semantics of SQL_ATTR_MAX_ROWS */
-#define SQL_CA2_MAX_ROWS_SELECT 0x00000080L
-#define SQL_CA2_MAX_ROWS_INSERT 0x00000100L
-#define SQL_CA2_MAX_ROWS_DELETE 0x00000200L
-#define SQL_CA2_MAX_ROWS_UPDATE 0x00000400L
-#define SQL_CA2_MAX_ROWS_CATALOG 0x00000800L
-#define SQL_CA2_MAX_ROWS_AFFECTS_ALL (SQL_CA2_MAX_ROWS_SELECT | SQL_CA2_MAX_ROWS_INSERT | SQL_CA2_MAX_ROWS_DELETE | SQL_CA2_MAX_ROWS_UPDATE | SQL_CA2_MAX_ROWS_CATALOG)
+/*
+ * SQLGetConnectAttr - SQL_LOGIN_TIMEOUT
+ */
+#define SQL_LOGIN_TIMEOUT_DEFAULT 15UL
-/* semantics of SQL_DIAG_CURSOR_ROW_COUNT */
-#define SQL_CA2_CRC_EXACT 0x00001000L
-#define SQL_CA2_CRC_APPROXIMATE 0x00002000L
-/* the kinds of positioned statements that can be simulated */
-#define SQL_CA2_SIMULATE_NON_UNIQUE 0x00004000L
-#define SQL_CA2_SIMULATE_TRY_UNIQUE 0x00008000L
-#define SQL_CA2_SIMULATE_UNIQUE 0x00010000L
-#endif /* ODBCVER >= 0x0300 */
+/*
+ * SQLGetConnectAttr - SQL_ODBC_CURSORS
+ */
+#define SQL_CUR_USE_IF_NEEDED 0UL
+#define SQL_CUR_USE_ODBC 1UL
+#define SQL_CUR_USE_DRIVER 2UL
+#define SQL_CUR_DEFAULT SQL_CUR_USE_DRIVER
+
-/* SQL_ODBC_API_CONFORMANCE values */
+/*
+ * SQLGetConnectAttr - SQL_OPT_TRACE
+ */
+#define SQL_OPT_TRACE_OFF 0UL
+#define SQL_OPT_TRACE_ON 1UL
+#define SQL_OPT_TRACE_DEFAULT SQL_OPT_TRACE_OFF
+#if defined (WIN32)
+#define SQL_OPT_TRACE_FILE_DEFAULT "\\SQL.LOG"
+#define SQL_OPT_TRACE_FILE_DEFAULTW L"\\SQL.LOG"
+#else
+#define SQL_OPT_TRACE_FILE_DEFAULT "/tmp/odbc.log"
+#define SQL_OPT_TRACE_FILE_DEFAULTW L"/tmp/odbc.log"
+#endif
-#define SQL_OAC_NONE 0x0000
-#define SQL_OAC_LEVEL1 0x0001
-#define SQL_OAC_LEVEL2 0x0002
-/* SQL_ODBC_SAG_CLI_CONFORMANCE values */
+/*
+ * SQLGetConnectAttr - SQL_ATTR_ANSI_APP
+ */
+#if (ODBCVER >= 0x0351)
+#define SQL_AA_TRUE 1L /* ANSI app */
+#define SQL_AA_FALSE 0L /* Unicode app */
+#endif
-#define SQL_OSCC_NOT_COMPLIANT 0x0000
-#define SQL_OSCC_COMPLIANT 0x0001
-/* SQL_ODBC_SQL_CONFORMANCE values */
+/*
+ * SQLGetConnectAttr - SQL_ATTR_CONNECTION_DEAD
+ */
+#define SQL_CD_TRUE 1L /* closed/dead */
+#define SQL_CD_FALSE 0L /* open/available */
-#define SQL_OSC_MINIMUM 0x0000
-#define SQL_OSC_CORE 0x0001
-#define SQL_OSC_EXTENDED 0x0002
+/*
+ * SQLGetConnectAttr - SQL_ATTR_DISCONNECT_BEHAVIOR
+ */
+#if (ODBCVER >= 0x0300)
+#define SQL_DB_RETURN_TO_POOL 0UL
+#define SQL_DB_DISCONNECT 1UL
+#define SQL_DB_DEFAULT SQL_DB_RETURN_TO_POOL
+#endif /* ODBCVER >= 0x0300 */
-/* SQL_CONCAT_NULL_BEHAVIOR values */
-#define SQL_CB_NULL 0x0000
-#define SQL_CB_NON_NULL 0x0001
+/*
+ * SQLGetConnectAttr - SQL_ATTR_ENLIST_IN_DTC
+ */
+#if (ODBCVER >= 0x0300)
+#define SQL_DTC_DONE 0L
+#endif /* ODBCVER >= 0x0300 */
-/* SQL_SCROLL_OPTIONS masks */
-#define SQL_SO_FORWARD_ONLY 0x00000001L
-#define SQL_SO_KEYSET_DRIVEN 0x00000002L
-#define SQL_SO_DYNAMIC 0x00000004L
-#define SQL_SO_MIXED 0x00000008L
-#define SQL_SO_STATIC 0x00000010L
+/*
+ * SQLGetConnectAttr - Unicode drivers
+ */
+#if (ODBCVER >= 0x0351)
+#define SQL_ATTR_ANSI_APP 115
+#endif
-/* SQL_FETCH_DIRECTION masks */
-/* SQL_FETCH_RESUME is no longer supported
-#define SQL_FD_FETCH_RESUME 0x00000040L
-*/
-#define SQL_FD_FETCH_BOOKMARK 0x00000080L
+/*
+ * SQLGetData
+ */
+#define SQL_NO_TOTAL (-4)
-/* SQL_TXN_ISOLATION_OPTION masks */
-/* SQL_TXN_VERSIONING is no longer supported
-#define SQL_TXN_VERSIONING 0x00000010L
-*/
-/* SQL_CORRELATION_NAME values */
+/*
+ * SQLGetDescField - extended descriptor field
+ */
+#if (ODBCVER >= 0x0300)
+#define SQL_DESC_ARRAY_SIZE 20
+#define SQL_DESC_ARRAY_STATUS_PTR 21
+#define SQL_DESC_AUTO_UNIQUE_VALUE SQL_COLUMN_AUTO_INCREMENT
+#define SQL_DESC_BASE_COLUMN_NAME 22
+#define SQL_DESC_BASE_TABLE_NAME 23
+#define SQL_DESC_BIND_OFFSET_PTR 24
+#define SQL_DESC_BIND_TYPE 25
+#define SQL_DESC_CASE_SENSITIVE SQL_COLUMN_CASE_SENSITIVE
+#define SQL_DESC_CATALOG_NAME SQL_COLUMN_QUALIFIER_NAME
+#define SQL_DESC_CONCISE_TYPE SQL_COLUMN_TYPE
+#define SQL_DESC_DATETIME_INTERVAL_PRECISION 26
+#define SQL_DESC_DISPLAY_SIZE SQL_COLUMN_DISPLAY_SIZE
+#define SQL_DESC_FIXED_PREC_SCALE SQL_COLUMN_MONEY
+#define SQL_DESC_LABEL SQL_COLUMN_LABEL
+#define SQL_DESC_LITERAL_PREFIX 27
+#define SQL_DESC_LITERAL_SUFFIX 28
+#define SQL_DESC_LOCAL_TYPE_NAME 29
+#define SQL_DESC_MAXIMUM_SCALE 30
+#define SQL_DESC_MINIMUM_SCALE 31
+#define SQL_DESC_NUM_PREC_RADIX 32
+#define SQL_DESC_PARAMETER_TYPE 33
+#define SQL_DESC_ROWS_PROCESSED_PTR 34
+#if (ODBCVER >= 0x0350)
+#define SQL_DESC_ROWVER 35
+#endif /* ODBCVER >= 0x0350 */
+#define SQL_DESC_SCHEMA_NAME SQL_COLUMN_OWNER_NAME
+#define SQL_DESC_SEARCHABLE SQL_COLUMN_SEARCHABLE
+#define SQL_DESC_TYPE_NAME SQL_COLUMN_TYPE_NAME
+#define SQL_DESC_TABLE_NAME SQL_COLUMN_TABLE_NAME
+#define SQL_DESC_UNSIGNED SQL_COLUMN_UNSIGNED
+#define SQL_DESC_UPDATABLE SQL_COLUMN_UPDATABLE
+#endif /* ODBCVER >= 0x0300 */
-#define SQL_CN_NONE 0x0000
-#define SQL_CN_DIFFERENT 0x0001
-#define SQL_CN_ANY 0x0002
-/* SQL_NON_NULLABLE_COLUMNS values */
+/*
+ * SQLGetDiagField - defines for diagnostics fields
+ */
+#if (ODBCVER >= 0x0300)
+#define SQL_DIAG_CURSOR_ROW_COUNT (-1249)
+#define SQL_DIAG_ROW_NUMBER (-1248)
+#define SQL_DIAG_COLUMN_NUMBER (-1247)
+#endif /* ODBCVER >= 0x0300 */
-#define SQL_NNC_NULL 0x0000
-#define SQL_NNC_NON_NULL 0x0001
-/* SQL_NULL_COLLATION values */
+/*
+ * SQLGetDiagField - SQL_DIAG_ROW_NUMBER and SQL_DIAG_COLUMN_NUMBER
+ */
+#if (ODBCVER >= 0x0300)
+#define SQL_NO_ROW_NUMBER (-1)
+#define SQL_NO_COLUMN_NUMBER (-1)
+#define SQL_ROW_NUMBER_UNKNOWN (-2)
+#define SQL_COLUMN_NUMBER_UNKNOWN (-2)
+#endif
-#define SQL_NC_START 0x0002
-#define SQL_NC_END 0x0004
-/* SQL_FILE_USAGE values */
+#if (ODBCVER >= 0x0300)
+/*
+ * SQLGetEnvAttr - Attributes
+ */
+#define SQL_ATTR_ODBC_VERSION 200
+#define SQL_ATTR_CONNECTION_POOLING 201
+#define SQL_ATTR_CP_MATCH 202
-#define SQL_FILE_NOT_SUPPORTED 0x0000
-#define SQL_FILE_TABLE 0x0001
-#define SQL_FILE_QUALIFIER 0x0002
-#define SQL_FILE_CATALOG SQL_FILE_QUALIFIER /* ODBC 3.0 */
+/*
+ * SQLGetEnvAttr - SQL_ATTR_ODBC_VERSION
+ */
+#define SQL_OV_ODBC2 2UL
+#define SQL_OV_ODBC3 3UL
-/* SQL_GETDATA_EXTENSIONS values */
-#define SQL_GD_BLOCK 0x00000004L
-#define SQL_GD_BOUND 0x00000008L
+/*
+ * SQLGetEnvAttr - SQL_ATTR_CONNECTION_POOLING
+ */
+#define SQL_CP_OFF 0UL
+#define SQL_CP_ONE_PER_DRIVER 1UL
+#define SQL_CP_ONE_PER_HENV 2UL
+#define SQL_CP_DEFAULT SQL_CP_OFF
-/* SQL_POSITIONED_STATEMENTS masks */
-#define SQL_PS_POSITIONED_DELETE 0x00000001L
-#define SQL_PS_POSITIONED_UPDATE 0x00000002L
-#define SQL_PS_SELECT_FOR_UPDATE 0x00000004L
+/*
+ * SQLGetEnvAttr - SQL_ATTR_CP_MATCH
+ */
+#define SQL_CP_STRICT_MATCH 0UL
+#define SQL_CP_RELAXED_MATCH 1UL
+#define SQL_CP_MATCH_DEFAULT SQL_CP_STRICT_MATCH
+#endif /* ODBCVER >= 0x0300 */
-/* SQL_GROUP_BY values */
-#define SQL_GB_NOT_SUPPORTED 0x0000
-#define SQL_GB_GROUP_BY_EQUALS_SELECT 0x0001
-#define SQL_GB_GROUP_BY_CONTAINS_SELECT 0x0002
-#define SQL_GB_NO_RELATION 0x0003
+/*
+ * SQLGetFunctions - extensions to the X/Open specification
+ */
#if (ODBCVER >= 0x0300)
-#define SQL_GB_COLLATE 0x0004
+#define SQL_API_SQLALLOCHANDLESTD 73
+#define SQL_API_SQLBULKOPERATIONS 24
+#endif /* ODBCVER >= 0x0300 */
+#define SQL_API_SQLBINDPARAMETER 72
+#define SQL_API_SQLBROWSECONNECT 55
+#define SQL_API_SQLCOLATTRIBUTES 6
+#define SQL_API_SQLCOLUMNPRIVILEGES 56
+#define SQL_API_SQLDESCRIBEPARAM 58
+#define SQL_API_SQLDRIVERCONNECT 41
+#define SQL_API_SQLDRIVERS 71
+#define SQL_API_SQLEXTENDEDFETCH 59
+#define SQL_API_SQLFOREIGNKEYS 60
+#define SQL_API_SQLMORERESULTS 61
+#define SQL_API_SQLNATIVESQL 62
+#define SQL_API_SQLNUMPARAMS 63
+#define SQL_API_SQLPARAMOPTIONS 64
+#define SQL_API_SQLPRIMARYKEYS 65
+#define SQL_API_SQLPROCEDURECOLUMNS 66
+#define SQL_API_SQLPROCEDURES 67
+#define SQL_API_SQLSETPOS 68
+#define SQL_API_SQLSETSCROLLOPTIONS 69
+#define SQL_API_SQLTABLEPRIVILEGES 70
-#endif /* ODBCVER >= 0x0300 */
-/* SQL_OWNER_USAGE masks */
+/*
+ * These are not useful anymore as the X/Open specification defines
+ * functions in the 10000 range
+ */
+#if (ODBCVER < 0x0300)
+#define SQL_EXT_API_LAST SQL_API_SQLBINDPARAMETER
+#define SQL_NUM_FUNCTIONS 23
+#define SQL_EXT_API_START 40
+#define SQL_NUM_EXTENSIONS (SQL_EXT_API_LAST-SQL_EXT_API_START+1)
+#endif /* ODBCVER < 0x0300 */
-#define SQL_OU_DML_STATEMENTS 0x00000001L
-#define SQL_OU_PROCEDURE_INVOCATION 0x00000002L
-#define SQL_OU_TABLE_DEFINITION 0x00000004L
-#define SQL_OU_INDEX_DEFINITION 0x00000008L
-#define SQL_OU_PRIVILEGE_DEFINITION 0x00000010L
-/* SQL_SCHEMA_USAGE masks */
-#if (ODBCVER >= 0x0300)
-#define SQL_SU_DML_STATEMENTS SQL_OU_DML_STATEMENTS
-#define SQL_SU_PROCEDURE_INVOCATION SQL_OU_PROCEDURE_INVOCATION
-#define SQL_SU_TABLE_DEFINITION SQL_OU_TABLE_DEFINITION
-#define SQL_SU_INDEX_DEFINITION SQL_OU_INDEX_DEFINITION
-#define SQL_SU_PRIVILEGE_DEFINITION SQL_OU_PRIVILEGE_DEFINITION
-#endif /* ODBCVER >= 0x0300 */
+/*
+ * SQLGetFunctions - ODBC version 2.x and earlier
+ */
+#define SQL_API_ALL_FUNCTIONS 0
+
-/* SQL_QUALIFIER_USAGE masks */
+/*
+ * Loading by ordinal is not supported for 3.0 and above drivers
+ */
+#define SQL_API_LOADBYORDINAL 199
-#define SQL_QU_DML_STATEMENTS 0x00000001L
-#define SQL_QU_PROCEDURE_INVOCATION 0x00000002L
-#define SQL_QU_TABLE_DEFINITION 0x00000004L
-#define SQL_QU_INDEX_DEFINITION 0x00000008L
-#define SQL_QU_PRIVILEGE_DEFINITION 0x00000010L
+/*
+ * SQLGetFunctions - SQL_API_ODBC3_ALL_FUNCTIONS
+ */
#if (ODBCVER >= 0x0300)
-/* SQL_CATALOG_USAGE masks */
-#define SQL_CU_DML_STATEMENTS SQL_QU_DML_STATEMENTS
-#define SQL_CU_PROCEDURE_INVOCATION SQL_QU_PROCEDURE_INVOCATION
-#define SQL_CU_TABLE_DEFINITION SQL_QU_TABLE_DEFINITION
-#define SQL_CU_INDEX_DEFINITION SQL_QU_INDEX_DEFINITION
-#define SQL_CU_PRIVILEGE_DEFINITION SQL_QU_PRIVILEGE_DEFINITION
-#endif /* ODBCVER >= 0x0300 */
+#define SQL_API_ODBC3_ALL_FUNCTIONS 999
+#define SQL_API_ODBC3_ALL_FUNCTIONS_SIZE 250
-/* SQL_SUBQUERIES masks */
+#define SQL_FUNC_EXISTS(pfExists, uwAPI) \
+ ((*(((UWORD*) (pfExists)) + ((uwAPI) >> 4)) & (1 << ((uwAPI) & 0x000F))) \
+ ? SQL_TRUE : SQL_FALSE)
+#endif /* ODBCVER >= 0x0300 */
-#define SQL_SQ_COMPARISON 0x00000001L
-#define SQL_SQ_EXISTS 0x00000002L
-#define SQL_SQ_IN 0x00000004L
-#define SQL_SQ_QUANTIFIED 0x00000008L
-#define SQL_SQ_CORRELATED_SUBQUERIES 0x00000010L
-
-/* SQL_UNION masks */
-
-#define SQL_U_UNION 0x00000001L
-#define SQL_U_UNION_ALL 0x00000002L
-
-/* SQL_BOOKMARK_PERSISTENCE values */
-
-#define SQL_BP_CLOSE 0x00000001L
-#define SQL_BP_DELETE 0x00000002L
-#define SQL_BP_DROP 0x00000004L
-#define SQL_BP_TRANSACTION 0x00000008L
-#define SQL_BP_UPDATE 0x00000010L
-#define SQL_BP_OTHER_HSTMT 0x00000020L
-#define SQL_BP_SCROLL 0x00000040L
-
-/* SQL_STATIC_SENSITIVITY values */
-
-#define SQL_SS_ADDITIONS 0x00000001L
-#define SQL_SS_DELETIONS 0x00000002L
-#define SQL_SS_UPDATES 0x00000004L
-
-/* SQL_VIEW values */
-#define SQL_CV_CREATE_VIEW 0x00000001L
-#define SQL_CV_CHECK_OPTION 0x00000002L
-#define SQL_CV_CASCADED 0x00000004L
-#define SQL_CV_LOCAL 0x00000008L
-
-/* SQL_LOCK_TYPES masks */
-
-#define SQL_LCK_NO_CHANGE 0x00000001L
-#define SQL_LCK_EXCLUSIVE 0x00000002L
-#define SQL_LCK_UNLOCK 0x00000004L
-
-/* SQL_POS_OPERATIONS masks */
-
-#define SQL_POS_POSITION 0x00000001L
-#define SQL_POS_REFRESH 0x00000002L
-#define SQL_POS_UPDATE 0x00000004L
-#define SQL_POS_DELETE 0x00000008L
-#define SQL_POS_ADD 0x00000010L
-
-/* SQL_QUALIFIER_LOCATION values */
-
-#define SQL_QL_START 0x0001
-#define SQL_QL_END 0x0002
-
-/* Here start return values for ODBC 3.0 SQLGetInfo */
-
-#if (ODBCVER >= 0x0300)
-/* SQL_AGGREGATE_FUNCTIONS bitmasks */
-#define SQL_AF_AVG 0x00000001L
-#define SQL_AF_COUNT 0x00000002L
-#define SQL_AF_MAX 0x00000004L
-#define SQL_AF_MIN 0x00000008L
-#define SQL_AF_SUM 0x00000010L
-#define SQL_AF_DISTINCT 0x00000020L
-#define SQL_AF_ALL 0x00000040L
-
-/* SQL_SQL_CONFORMANCE bit masks */
-#define SQL_SC_SQL92_ENTRY 0x00000001L
-#define SQL_SC_FIPS127_2_TRANSITIONAL 0x00000002L
-#define SQL_SC_SQL92_INTERMEDIATE 0x00000004L
-#define SQL_SC_SQL92_FULL 0x00000008L
-
-/* SQL_DATETIME_LITERALS masks */
-#define SQL_DL_SQL92_DATE 0x00000001L
-#define SQL_DL_SQL92_TIME 0x00000002L
-#define SQL_DL_SQL92_TIMESTAMP 0x00000004L
-#define SQL_DL_SQL92_INTERVAL_YEAR 0x00000008L
-#define SQL_DL_SQL92_INTERVAL_MONTH 0x00000010L
-#define SQL_DL_SQL92_INTERVAL_DAY 0x00000020L
-#define SQL_DL_SQL92_INTERVAL_HOUR 0x00000040L
-#define SQL_DL_SQL92_INTERVAL_MINUTE 0x00000080L
-#define SQL_DL_SQL92_INTERVAL_SECOND 0x00000100L
-#define SQL_DL_SQL92_INTERVAL_YEAR_TO_MONTH 0x00000200L
-#define SQL_DL_SQL92_INTERVAL_DAY_TO_HOUR 0x00000400L
-#define SQL_DL_SQL92_INTERVAL_DAY_TO_MINUTE 0x00000800L
-#define SQL_DL_SQL92_INTERVAL_DAY_TO_SECOND 0x00001000L
-#define SQL_DL_SQL92_INTERVAL_HOUR_TO_MINUTE 0x00002000L
-#define SQL_DL_SQL92_INTERVAL_HOUR_TO_SECOND 0x00004000L
-#define SQL_DL_SQL92_INTERVAL_MINUTE_TO_SECOND 0x00008000L
-/* SQL_CATALOG_LOCATION values */
-#define SQL_CL_START SQL_QL_START
-#define SQL_CL_END SQL_QL_END
+/*
+ * SQLGetInfo - ODBC 2.x extensions to the X/Open standard
+ */
+#define SQL_INFO_FIRST 0
+#define SQL_ACTIVE_CONNECTIONS 0 /* MAX_DRIVER_CONNECTIONS */
+#define SQL_ACTIVE_STATEMENTS 1 /* MAX_CONCURRENT_ACTIVITIES */
+#define SQL_DRIVER_HDBC 3
+#define SQL_DRIVER_HENV 4
+#define SQL_DRIVER_HSTMT 5
+#define SQL_DRIVER_NAME 6
+#define SQL_DRIVER_VER 7
+#define SQL_ODBC_API_CONFORMANCE 9
+#define SQL_ODBC_VER 10
+#define SQL_ROW_UPDATES 11
+#define SQL_ODBC_SAG_CLI_CONFORMANCE 12
+#define SQL_ODBC_SQL_CONFORMANCE 15
+#define SQL_PROCEDURES 21
+#define SQL_CONCAT_NULL_BEHAVIOR 22
+#define SQL_CURSOR_ROLLBACK_BEHAVIOR 24
+#define SQL_EXPRESSIONS_IN_ORDERBY 27
+#define SQL_MAX_OWNER_NAME_LEN 32 /* MAX_SCHEMA_NAME_LEN */
+#define SQL_MAX_PROCEDURE_NAME_LEN 33
+#define SQL_MAX_QUALIFIER_NAME_LEN 34 /* MAX_CATALOG_NAME_LEN */
+#define SQL_MULT_RESULT_SETS 36
+#define SQL_MULTIPLE_ACTIVE_TXN 37
+#define SQL_OUTER_JOINS 38
+#define SQL_OWNER_TERM 39
+#define SQL_PROCEDURE_TERM 40
+#define SQL_QUALIFIER_NAME_SEPARATOR 41
+#define SQL_QUALIFIER_TERM 42
+#define SQL_SCROLL_OPTIONS 44
+#define SQL_TABLE_TERM 45
+#define SQL_CONVERT_FUNCTIONS 48
+#define SQL_NUMERIC_FUNCTIONS 49
+#define SQL_STRING_FUNCTIONS 50
+#define SQL_SYSTEM_FUNCTIONS 51
+#define SQL_TIMEDATE_FUNCTIONS 52
+#define SQL_CONVERT_BIGINT 53
+#define SQL_CONVERT_BINARY 54
+#define SQL_CONVERT_BIT 55
+#define SQL_CONVERT_CHAR 56
+#define SQL_CONVERT_DATE 57
+#define SQL_CONVERT_DECIMAL 58
+#define SQL_CONVERT_DOUBLE 59
+#define SQL_CONVERT_FLOAT 60
+#define SQL_CONVERT_INTEGER 61
+#define SQL_CONVERT_LONGVARCHAR 62
+#define SQL_CONVERT_NUMERIC 63
+#define SQL_CONVERT_REAL 64
+#define SQL_CONVERT_SMALLINT 65
+#define SQL_CONVERT_TIME 66
+#define SQL_CONVERT_TIMESTAMP 67
+#define SQL_CONVERT_TINYINT 68
+#define SQL_CONVERT_VARBINARY 69
+#define SQL_CONVERT_VARCHAR 70
+#define SQL_CONVERT_LONGVARBINARY 71
+#define SQL_ODBC_SQL_OPT_IEF 73 /* SQL_INTEGRITY */
+#define SQL_CORRELATION_NAME 74
+#define SQL_NON_NULLABLE_COLUMNS 75
+#define SQL_DRIVER_HLIB 76
+#define SQL_DRIVER_ODBC_VER 77
+#define SQL_LOCK_TYPES 78
+#define SQL_POS_OPERATIONS 79
+#define SQL_POSITIONED_STATEMENTS 80
+#define SQL_BOOKMARK_PERSISTENCE 82
+#define SQL_STATIC_SENSITIVITY 83
+#define SQL_FILE_USAGE 84
+#define SQL_COLUMN_ALIAS 87
+#define SQL_GROUP_BY 88
+#define SQL_KEYWORDS 89
+#define SQL_OWNER_USAGE 91
+#define SQL_QUALIFIER_USAGE 92
+#define SQL_QUOTED_IDENTIFIER_CASE 93
+#define SQL_SUBQUERIES 95
+#define SQL_UNION 96
+#define SQL_MAX_ROW_SIZE_INCLUDES_LONG 103
+#define SQL_MAX_CHAR_LITERAL_LEN 108
+#define SQL_TIMEDATE_ADD_INTERVALS 109
+#define SQL_TIMEDATE_DIFF_INTERVALS 110
+#define SQL_NEED_LONG_DATA_LEN 111
+#define SQL_MAX_BINARY_LITERAL_LEN 112
+#define SQL_LIKE_ESCAPE_CLAUSE 113
+#define SQL_QUALIFIER_LOCATION 114
-/* values for SQL_BATCH_ROW_COUNT */
-#define SQL_BRC_PROCEDURES 0x0000001
-#define SQL_BRC_EXPLICIT 0x0000002
-#define SQL_BRC_ROLLED_UP 0x0000004
+#if (ODBCVER >= 0x0201 && ODBCVER < 0x0300)
+#define SQL_OJ_CAPABILITIES 65003 /* Temp value until ODBC 3.0 */
+#endif /* ODBCVER >= 0x0201 && ODBCVER < 0x0300 */
-/* bitmasks for SQL_BATCH_SUPPORT */
-#define SQL_BS_SELECT_EXPLICIT 0x00000001L
-#define SQL_BS_ROW_COUNT_EXPLICIT 0x00000002L
-#define SQL_BS_SELECT_PROC 0x00000004L
-#define SQL_BS_ROW_COUNT_PROC 0x00000008L
-
-/* Values for SQL_PARAM_ARRAY_ROW_COUNTS getinfo */
-#define SQL_PARC_BATCH 1
-#define SQL_PARC_NO_BATCH 2
-/* values for SQL_PARAM_ARRAY_SELECTS */
+/*
+ * These values are not useful anymore as X/Open defines values in the
+ * 10000 range
+ */
+#if (ODBCVER < 0x0300)
+#define SQL_INFO_LAST SQL_QUALIFIER_LOCATION
+#define SQL_INFO_DRIVER_START 1000
+#endif /* ODBCVER < 0x0300 */
+
+
+/*
+ * SQLGetInfo - ODBC 3.x extensions to the X/Open standard
+ */
+#if (ODBCVER >= 0x0300)
+#define SQL_ACTIVE_ENVIRONMENTS 116
+#define SQL_ALTER_DOMAIN 117
+
+#define SQL_SQL_CONFORMANCE 118
+#define SQL_DATETIME_LITERALS 119
+
+#define SQL_ASYNC_MODE 10021 /* new X/Open spec */
+#define SQL_BATCH_ROW_COUNT 120
+#define SQL_BATCH_SUPPORT 121
+#define SQL_CATALOG_LOCATION SQL_QUALIFIER_LOCATION
+#define SQL_CATALOG_NAME_SEPARATOR SQL_QUALIFIER_NAME_SEPARATOR
+#define SQL_CATALOG_TERM SQL_QUALIFIER_TERM
+#define SQL_CATALOG_USAGE SQL_QUALIFIER_USAGE
+#define SQL_CONVERT_WCHAR 122
+#define SQL_CONVERT_INTERVAL_DAY_TIME 123
+#define SQL_CONVERT_INTERVAL_YEAR_MONTH 124
+#define SQL_CONVERT_WLONGVARCHAR 125
+#define SQL_CONVERT_WVARCHAR 126
+#define SQL_CREATE_ASSERTION 127
+#define SQL_CREATE_CHARACTER_SET 128
+#define SQL_CREATE_COLLATION 129
+#define SQL_CREATE_DOMAIN 130
+#define SQL_CREATE_SCHEMA 131
+#define SQL_CREATE_TABLE 132
+#define SQL_CREATE_TRANSLATION 133
+#define SQL_CREATE_VIEW 134
+#define SQL_DRIVER_HDESC 135
+#define SQL_DROP_ASSERTION 136
+#define SQL_DROP_CHARACTER_SET 137
+#define SQL_DROP_COLLATION 138
+#define SQL_DROP_DOMAIN 139
+#define SQL_DROP_SCHEMA 140
+#define SQL_DROP_TABLE 141
+#define SQL_DROP_TRANSLATION 142
+#define SQL_DROP_VIEW 143
+#define SQL_DYNAMIC_CURSOR_ATTRIBUTES1 144
+#define SQL_DYNAMIC_CURSOR_ATTRIBUTES2 145
+#define SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES1 146
+#define SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES2 147
+#define SQL_INDEX_KEYWORDS 148
+#define SQL_INFO_SCHEMA_VIEWS 149
+#define SQL_KEYSET_CURSOR_ATTRIBUTES1 150
+#define SQL_KEYSET_CURSOR_ATTRIBUTES2 151
+#define SQL_MAX_ASYNC_CONCURRENT_STATEMENTS 10022 /* new X/Open spec */
+#define SQL_ODBC_INTERFACE_CONFORMANCE 152
+#define SQL_PARAM_ARRAY_ROW_COUNTS 153
+#define SQL_PARAM_ARRAY_SELECTS 154
+#define SQL_SCHEMA_TERM SQL_OWNER_TERM
+#define SQL_SCHEMA_USAGE SQL_OWNER_USAGE
+#define SQL_SQL92_DATETIME_FUNCTIONS 155
+#define SQL_SQL92_FOREIGN_KEY_DELETE_RULE 156
+#define SQL_SQL92_FOREIGN_KEY_UPDATE_RULE 157
+#define SQL_SQL92_GRANT 158
+#define SQL_SQL92_NUMERIC_VALUE_FUNCTIONS 159
+#define SQL_SQL92_PREDICATES 160
+#define SQL_SQL92_RELATIONAL_JOIN_OPERATORS 161
+#define SQL_SQL92_REVOKE 162
+#define SQL_SQL92_ROW_VALUE_CONSTRUCTOR 163
+#define SQL_SQL92_STRING_FUNCTIONS 164
+#define SQL_SQL92_VALUE_EXPRESSIONS 165
+#define SQL_STANDARD_CLI_CONFORMANCE 166
+#define SQL_STATIC_CURSOR_ATTRIBUTES1 167
+#define SQL_STATIC_CURSOR_ATTRIBUTES2 168
+
+#define SQL_AGGREGATE_FUNCTIONS 169
+#define SQL_DDL_INDEX 170
+#define SQL_DM_VER 171
+#define SQL_INSERT_STATEMENT 172
+#define SQL_UNION_STATEMENT SQL_UNION
+
+#endif /* ODBCVER >= 0x0300 */
+
+#define SQL_DTC_TRANSITION_COST 1750
+
+
+/*
+ * SQLGetInfo - SQL_AGGREGATE_FUNCTIONS
+ */
+#if (ODBCVER >= 0x0300)
+#define SQL_AF_AVG 0x00000001L
+#define SQL_AF_COUNT 0x00000002L
+#define SQL_AF_MAX 0x00000004L
+#define SQL_AF_MIN 0x00000008L
+#define SQL_AF_SUM 0x00000010L
+#define SQL_AF_DISTINCT 0x00000020L
+#define SQL_AF_ALL 0x00000040L
+#endif /* ODBCVER >= 0x0300 */
+
+/*
+ * SQLGetInfo - SQL_ALTER_DOMAIN
+ */
+#if (ODBCVER >= 0x0300)
+#define SQL_AD_CONSTRAINT_NAME_DEFINITION 0x00000001L
+#define SQL_AD_ADD_DOMAIN_CONSTRAINT 0x00000002L
+#define SQL_AD_DROP_DOMAIN_CONSTRAINT 0x00000004L
+#define SQL_AD_ADD_DOMAIN_DEFAULT 0x00000008L
+#define SQL_AD_DROP_DOMAIN_DEFAULT 0x00000010L
+#define SQL_AD_ADD_CONSTRAINT_INITIALLY_DEFERRED 0x00000020L
+#define SQL_AD_ADD_CONSTRAINT_INITIALLY_IMMEDIATE 0x00000040L
+#define SQL_AD_ADD_CONSTRAINT_DEFERRABLE 0x00000080L
+#define SQL_AD_ADD_CONSTRAINT_NON_DEFERRABLE 0x00000100L
+#endif /* ODBCVER >= 0x0300 */
+
+
+/*
+ * SQLGetInfo - SQL_ALTER_TABLE
+ */
+#if (ODBCVER >= 0x0300)
+/*
+ * The following 5 bitmasks are defined in sql.h
+ *
+ * #define SQL_AT_ADD_COLUMN 0x00000001L
+ * #define SQL_AT_DROP_COLUMN 0x00000002L
+ * #define SQL_AT_ADD_CONSTRAINT 0x00000008L
+ */
+#define SQL_AT_ADD_COLUMN_SINGLE 0x00000020L
+#define SQL_AT_ADD_COLUMN_DEFAULT 0x00000040L
+#define SQL_AT_ADD_COLUMN_COLLATION 0x00000080L
+#define SQL_AT_SET_COLUMN_DEFAULT 0x00000100L
+#define SQL_AT_DROP_COLUMN_DEFAULT 0x00000200L
+#define SQL_AT_DROP_COLUMN_CASCADE 0x00000400L
+#define SQL_AT_DROP_COLUMN_RESTRICT 0x00000800L
+#define SQL_AT_ADD_TABLE_CONSTRAINT 0x00001000L
+#define SQL_AT_DROP_TABLE_CONSTRAINT_CASCADE 0x00002000L
+#define SQL_AT_DROP_TABLE_CONSTRAINT_RESTRICT 0x00004000L
+#define SQL_AT_CONSTRAINT_NAME_DEFINITION 0x00008000L
+#define SQL_AT_CONSTRAINT_INITIALLY_DEFERRED 0x00010000L
+#define SQL_AT_CONSTRAINT_INITIALLY_IMMEDIATE 0x00020000L
+#define SQL_AT_CONSTRAINT_DEFERRABLE 0x00040000L
+#define SQL_AT_CONSTRAINT_NON_DEFERRABLE 0x00080000L
+#endif /* ODBCVER >= 0x0300 */
+
+
+/*
+ * SQLGetInfo - SQL_ASYNC_MODE
+ */
+#if (ODBCVER >= 0x0300)
+#define SQL_AM_NONE 0
+#define SQL_AM_CONNECTION 1
+#define SQL_AM_STATEMENT 2
+#endif /* ODBCVER >= 0x0300 */
+
+
+/*
+ * SQLGetInfo - SQL_BATCH_ROW_COUNT
+ */
+#if (ODBCVER >= 0x0300)
+#define SQL_BRC_PROCEDURES 0x0000001
+#define SQL_BRC_EXPLICIT 0x0000002
+#define SQL_BRC_ROLLED_UP 0x0000004
+#endif /* ODBCVER >= 0x0300 */
+
+
+/*
+ * SQLGetInfo - SQL_BATCH_SUPPORT
+ */
+#if (ODBCVER >= 0x0300)
+#define SQL_BS_SELECT_EXPLICIT 0x00000001L
+#define SQL_BS_ROW_COUNT_EXPLICIT 0x00000002L
+#define SQL_BS_SELECT_PROC 0x00000004L
+#define SQL_BS_ROW_COUNT_PROC 0x00000008L
+#endif /* ODBCVER >= 0x0300 */
+
+
+/*
+ * SQLGetInfo - SQL_BOOKMARK_PERSISTENCE
+ */
+#define SQL_BP_CLOSE 0x00000001L
+#define SQL_BP_DELETE 0x00000002L
+#define SQL_BP_DROP 0x00000004L
+#define SQL_BP_TRANSACTION 0x00000008L
+#define SQL_BP_UPDATE 0x00000010L
+#define SQL_BP_OTHER_HSTMT 0x00000020L
+#define SQL_BP_SCROLL 0x00000040L
+
+
+/*
+ * SQLGetInfo - SQL_CATALOG_LOCATION
+ */
+#if (ODBCVER >= 0x0300)
+#define SQL_CL_START SQL_QL_START
+#define SQL_CL_END SQL_QL_END
+#endif /* ODBCVER >= 0x0300 */
+
+
+/*
+ * SQLGetInfo - SQL_CATALOG_USAGE
+ */
+#if (ODBCVER >= 0x0300)
+#define SQL_CU_DML_STATEMENTS SQL_QU_DML_STATEMENTS
+#define SQL_CU_PROCEDURE_INVOCATION SQL_QU_PROCEDURE_INVOCATION
+#define SQL_CU_TABLE_DEFINITION SQL_QU_TABLE_DEFINITION
+#define SQL_CU_INDEX_DEFINITION SQL_QU_INDEX_DEFINITION
+#define SQL_CU_PRIVILEGE_DEFINITION SQL_QU_PRIVILEGE_DEFINITION
+#endif /* ODBCVER >= 0x0300 */
+
+
+/*
+ * SQLGetInfo - SQL_CONCAT_NULL_BEHAVIOR
+ */
+#define SQL_CB_NULL 0x0000
+#define SQL_CB_NON_NULL 0x0001
+
+
+/*
+ * SQLGetInfo - SQL_CONVERT_* bitmask values
+ */
+#define SQL_CVT_CHAR 0x00000001L
+#define SQL_CVT_NUMERIC 0x00000002L
+#define SQL_CVT_DECIMAL 0x00000004L
+#define SQL_CVT_INTEGER 0x00000008L
+#define SQL_CVT_SMALLINT 0x00000010L
+#define SQL_CVT_FLOAT 0x00000020L
+#define SQL_CVT_REAL 0x00000040L
+#define SQL_CVT_DOUBLE 0x00000080L
+#define SQL_CVT_VARCHAR 0x00000100L
+#define SQL_CVT_LONGVARCHAR 0x00000200L
+#define SQL_CVT_BINARY 0x00000400L
+#define SQL_CVT_VARBINARY 0x00000800L
+#define SQL_CVT_BIT 0x00001000L
+#define SQL_CVT_TINYINT 0x00002000L
+#define SQL_CVT_BIGINT 0x00004000L
+#define SQL_CVT_DATE 0x00008000L
+#define SQL_CVT_TIME 0x00010000L
+#define SQL_CVT_TIMESTAMP 0x00020000L
+#define SQL_CVT_LONGVARBINARY 0x00040000L
+#if (ODBCVER >= 0x0300)
+#define SQL_CVT_INTERVAL_YEAR_MONTH 0x00080000L
+#define SQL_CVT_INTERVAL_DAY_TIME 0x00100000L
+#define SQL_CVT_WCHAR 0x00200000L
+#define SQL_CVT_WLONGVARCHAR 0x00400000L
+#define SQL_CVT_WVARCHAR 0x00800000L
+#endif /* ODBCVER >= 0x0300 */
+
+
+/*
+ * SQLGetInfo - SQL_CONVERT_FUNCTIONS
+ */
+#define SQL_FN_CVT_CONVERT 0x00000001L
+#if (ODBCVER >= 0x0300)
+#define SQL_FN_CVT_CAST 0x00000002L
+#endif /* ODBCVER >= 0x0300 */
+
+
+/*
+ * SQLGetInfo - SQL_CORRELATION_NAME
+ */
+#define SQL_CN_NONE 0x0000
+#define SQL_CN_DIFFERENT 0x0001
+#define SQL_CN_ANY 0x0002
+
+
+/*
+ * SQLGetInfo - SQL_CREATE_ASSERTION
+ */
+#if (ODBCVER >= 0x0300)
+#define SQL_CA_CREATE_ASSERTION 0x00000001L
+#define SQL_CA_CONSTRAINT_INITIALLY_DEFERRED 0x00000010L
+#define SQL_CA_CONSTRAINT_INITIALLY_IMMEDIATE 0x00000020L
+#define SQL_CA_CONSTRAINT_DEFERRABLE 0x00000040L
+#define SQL_CA_CONSTRAINT_NON_DEFERRABLE 0x00000080L
+#endif /* ODBCVER >= 0x0300 */
+
+
+/*
+ * SQLGetInfo - SQL_CREATE_CHARACTER_SET
+ */
+#if (ODBCVER >= 0x0300)
+#define SQL_CCS_CREATE_CHARACTER_SET 0x00000001L
+#define SQL_CCS_COLLATE_CLAUSE 0x00000002L
+#define SQL_CCS_LIMITED_COLLATION 0x00000004L
+#endif /* ODBCVER >= 0x0300 */
+
+
+/*
+ * SQLGetInfo - SQL_CREATE_COLLATION
+ */
+#if (ODBCVER >= 0x0300)
+#define SQL_CCOL_CREATE_COLLATION 0x00000001L
+#endif /* ODBCVER >= 0x0300 */
+
+
+/*
+ * SQLGetInfo - SQL_CREATE_DOMAIN
+ */
+#if (ODBCVER >= 0x0300)
+#define SQL_CDO_CREATE_DOMAIN 0x00000001L
+#define SQL_CDO_DEFAULT 0x00000002L
+#define SQL_CDO_CONSTRAINT 0x00000004L
+#define SQL_CDO_COLLATION 0x00000008L
+#define SQL_CDO_CONSTRAINT_NAME_DEFINITION 0x00000010L
+#define SQL_CDO_CONSTRAINT_INITIALLY_DEFERRED 0x00000020L
+#define SQL_CDO_CONSTRAINT_INITIALLY_IMMEDIATE 0x00000040L
+#define SQL_CDO_CONSTRAINT_DEFERRABLE 0x00000080L
+#define SQL_CDO_CONSTRAINT_NON_DEFERRABLE 0x00000100L
+#endif /* ODBCVER >= 0x0300 */
+
+
+/*
+ * SQLGetInfo - SQL_CREATE_SCHEMA
+ */
+#if (ODBCVER >= 0x0300)
+#define SQL_CS_CREATE_SCHEMA 0x00000001L
+#define SQL_CS_AUTHORIZATION 0x00000002L
+#define SQL_CS_DEFAULT_CHARACTER_SET 0x00000004L
+#endif /* ODBCVER >= 0x0300 */
+
+
+/*
+ * SQLGetInfo - SQL_CREATE_TABLE
+ */
+#if (ODBCVER >= 0x0300)
+#define SQL_CT_CREATE_TABLE 0x00000001L
+#define SQL_CT_COMMIT_PRESERVE 0x00000002L
+#define SQL_CT_COMMIT_DELETE 0x00000004L
+#define SQL_CT_GLOBAL_TEMPORARY 0x00000008L
+#define SQL_CT_LOCAL_TEMPORARY 0x00000010L
+#define SQL_CT_CONSTRAINT_INITIALLY_DEFERRED 0x00000020L
+#define SQL_CT_CONSTRAINT_INITIALLY_IMMEDIATE 0x00000040L
+#define SQL_CT_CONSTRAINT_DEFERRABLE 0x00000080L
+#define SQL_CT_CONSTRAINT_NON_DEFERRABLE 0x00000100L
+#define SQL_CT_COLUMN_CONSTRAINT 0x00000200L
+#define SQL_CT_COLUMN_DEFAULT 0x00000400L
+#define SQL_CT_COLUMN_COLLATION 0x00000800L
+#define SQL_CT_TABLE_CONSTRAINT 0x00001000L
+#define SQL_CT_CONSTRAINT_NAME_DEFINITION 0x00002000L
+#endif /* ODBCVER >= 0x0300 */
+
+
+/*
+ * SQLGetInfo - SQL_CREATE_TRANSLATION
+ */
+#if (ODBCVER >= 0x0300)
+#define SQL_CTR_CREATE_TRANSLATION 0x00000001L
+#endif /* ODBCVER >= 0x0300 */
+
+
+/*
+ * SQLGetInfo - SQL_CREATE_VIEW
+ */
+#define SQL_CV_CREATE_VIEW 0x00000001L
+#define SQL_CV_CHECK_OPTION 0x00000002L
+#define SQL_CV_CASCADED 0x00000004L
+#define SQL_CV_LOCAL 0x00000008L
+
+
+/*
+ * SQLGetInfo - SQL_DATETIME_LITERALS
+ */
+#if (ODBCVER >= 0x0300)
+#define SQL_DL_SQL92_DATE 0x00000001L
+#define SQL_DL_SQL92_TIME 0x00000002L
+#define SQL_DL_SQL92_TIMESTAMP 0x00000004L
+#define SQL_DL_SQL92_INTERVAL_YEAR 0x00000008L
+#define SQL_DL_SQL92_INTERVAL_MONTH 0x00000010L
+#define SQL_DL_SQL92_INTERVAL_DAY 0x00000020L
+#define SQL_DL_SQL92_INTERVAL_HOUR 0x00000040L
+#define SQL_DL_SQL92_INTERVAL_MINUTE 0x00000080L
+#define SQL_DL_SQL92_INTERVAL_SECOND 0x00000100L
+#define SQL_DL_SQL92_INTERVAL_YEAR_TO_MONTH 0x00000200L
+#define SQL_DL_SQL92_INTERVAL_DAY_TO_HOUR 0x00000400L
+#define SQL_DL_SQL92_INTERVAL_DAY_TO_MINUTE 0x00000800L
+#define SQL_DL_SQL92_INTERVAL_DAY_TO_SECOND 0x00001000L
+#define SQL_DL_SQL92_INTERVAL_HOUR_TO_MINUTE 0x00002000L
+#define SQL_DL_SQL92_INTERVAL_HOUR_TO_SECOND 0x00004000L
+#define SQL_DL_SQL92_INTERVAL_MINUTE_TO_SECOND 0x00008000L
+#endif /* ODBCVER >= 0x0300 */
+
+
+/*
+ * SQLGetInfo - SQL_DDL_INDEX
+ */
+#if (ODBCVER >= 0x0300)
+#define SQL_DI_CREATE_INDEX 0x00000001L
+#define SQL_DI_DROP_INDEX 0x00000002L
+#endif /* ODBCVER >= 0x0300 */
+
+
+/*
+ * SQLGetInfo - SQL_DROP_ASSERTION
+ */
+#if (ODBCVER >= 0x0300)
+#define SQL_DA_DROP_ASSERTION 0x00000001L
+#endif /* ODBCVER >= 0x0300 */
+
+
+/*
+ * SQLGetInfo - SQL_DROP_CHARACTER_SET
+ */
+#if (ODBCVER >= 0x0300)
+#define SQL_DCS_DROP_CHARACTER_SET 0x00000001L
+#endif /* ODBCVER >= 0x0300 */
+
+
+/*
+ * SQLGetInfo - SQL_DROP_COLLATION
+ */
+#if (ODBCVER >= 0x0300)
+#define SQL_DC_DROP_COLLATION 0x00000001L
+#endif /* ODBCVER >= 0x0300 */
+
+
+/*
+ * SQLGetInfo - SQL_DROP_DOMAIN
+ */
+#if (ODBCVER >= 0x0300)
+#define SQL_DD_DROP_DOMAIN 0x00000001L
+#define SQL_DD_RESTRICT 0x00000002L
+#define SQL_DD_CASCADE 0x00000004L
[... 2020 lines stripped ...]