📄 sqlext.h
字号:
/* * sqlext.h * * $Id: sqlext.h,v 1.2 2007/01/09 19:51:04 yas Exp $ * * ODBC defines (ext) * * The iODBC driver manager. * * Copyright (C) 1995 by Ke Jin <kejin@empress.com> * Copyright (C) 1996-2006 by OpenLink Software <iodbc@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: * * 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. * * 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. */#ifndef _SQLEXT_H#define _SQLEXT_H#ifndef _SQL_H#include <sql.h>#endif#ifdef __cplusplusextern "C" {#endif/* * 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/* * Handle types */#if (ODBCVER >= 0x0300)#define SQL_HANDLE_SENV 5#endif /* ODBCVER >= 0x0300 *//* * Function return codes */#if (ODBCVER < 0x0300)#define SQL_NO_DATA_FOUND 100#else#define SQL_NO_DATA_FOUND SQL_NO_DATA#endif /* ODBCVER < 0x0300 *//* * Special length values for attributes */#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 *//* * 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)#if (ODBCVER >= 0x0350)#define SQL_GUID (-11)#endif /* ODBCVER >= 0x0350 *//* * SQL Interval datatypes */#if (ODBCVER >= 0x0300)#define SQL_CODE_YEAR 1#define SQL_CODE_MONTH 2#define SQL_CODE_DAY 3#define SQL_CODE_HOUR 4#define SQL_CODE_MINUTE 5#define SQL_CODE_SECOND 6#define SQL_CODE_YEAR_TO_MONTH 7#define SQL_CODE_DAY_TO_HOUR 8#define SQL_CODE_DAY_TO_MINUTE 9#define SQL_CODE_DAY_TO_SECOND 10#define SQL_CODE_HOUR_TO_MINUTE 11#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_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 *//* * SQL unicode data types */#if (ODBCVER <= 0x0300)/* 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#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 */#if (ODBCVER < 0x0300)#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_TIMESTAMP SQL_TYPE_TIMESTAMP#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_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_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#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 >= 0x0350)#define SQL_C_GUID SQL_GUID#endif#define SQL_TYPE_NULL 0#if (ODBCVER < 0x0300)#define SQL_TYPE_MIN SQL_BIT#define SQL_TYPE_MAX SQL_VARCHAR#endif /* ODBCVER < 0x0300 *//* * ---------------------------------------------------------------------- * Level 1 Functions * ---------------------------------------------------------------------- *//* * 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)/* * 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)/* * 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_COLATT_OPT_MIN SQL_COLUMN_COUNT/* * SQLColAttributes - SQL_COLUMN_UPDATABLE */#define SQL_ATTR_READONLY 0#define SQL_ATTR_WRITE 1#define SQL_ATTR_READWRITE_UNKNOWN 2/* * 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/* * SQLDataSources - additional fetch directions */#if (ODBCVER >= 0x0300)#define SQL_FETCH_FIRST_USER 31#define SQL_FETCH_FIRST_SYSTEM 32#endif /* ODBCVER >= 0x0300 *//* * SQLDriverConnect */#define SQL_DRIVER_NOPROMPT 0#define SQL_DRIVER_COMPLETE 1#define SQL_DRIVER_PROMPT 2#define SQL_DRIVER_COMPLETE_REQUIRED 3/* * 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/* * 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_ATTR_CONNECTION_DEAD 1209 /* GetConnectAttr only *//* * 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 *//* * SQLGetConnectAttr - SQL_ACCESS_MODE */#define SQL_MODE_READ_WRITE 0UL#define SQL_MODE_READ_ONLY 1UL#define SQL_MODE_DEFAULT SQL_MODE_READ_WRITE/* * SQLGetConnectAttr - SQL_AUTOCOMMIT */#define SQL_AUTOCOMMIT_OFF 0UL#define SQL_AUTOCOMMIT_ON 1UL#define SQL_AUTOCOMMIT_DEFAULT SQL_AUTOCOMMIT_ON/* * SQLGetConnectAttr - SQL_LOGIN_TIMEOUT */#define SQL_LOGIN_TIMEOUT_DEFAULT 15UL/* * 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/* * 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"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -