📄 sqlext.h
字号:
/* * sqlext.h * * $Id: sqlext.h,v 1.2 1999/12/09 13:47:35 source Exp $ * * ODBC defines (ext) * * The iODBC driver manager. * * Copyright (C) 1995 by Ke Jin <kejin@empress.com> * * 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; either * version 2 of the License, or (at your option) any later version. * * 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 * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */#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 51#define SQL_SPEC_STRING "03.51"#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)#define SQL_C_BOOKMARK SQL_C_ULONG#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_GUID SQL_GUID#define SQL_C_VARBOOKMARK SQL_C_BINARY#endif /* ODBCVER >= 0x0300 */#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"#else#define SQL_OPT_TRACE_FILE_DEFAULT "/tmp/odbc.log"#endif/* * SQLGetConnectAttr - SQL_ATTR_ANSI_APP */#if (ODBCVER >= 0x0351)#define SQL_AA_TRUE 1L /* ANSI app */#define SQL_AA_FALSE 0L /* Unicode app */#endif/* * SQLGetConnectAttr - SQL_ATTR_CONNECTION_DEAD */#define SQL_CD_TRUE 1L /* closed/dead */#define SQL_CD_FALSE 0L /* open/available *//* * 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 *//* * SQLGetConnectAttr - SQL_ATTR_ENLIST_IN_DTC */#if (ODBCVER >= 0x0300)#define SQL_DTC_DONE 0L#endif /* ODBCVER >= 0x0300 *//* * SQLGetConnectAttr - Unicode drivers */#if (ODBCVER >= 0x0351)#define SQL_ATTR_ANSI_APP 115#endif/* * SQLGetData */#define SQL_NO_TOTAL (-4)/* * 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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -