📄 sql.h
字号:
/* * sql.h * * $Id: sql.h,v 1.2 1999/12/09 13:47:35 source Exp $ * * ODBC defines * * 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 _SQL_H#define _SQL_H/* * Set default specification to ODBC 3.51 */#ifndef ODBCVER#define ODBCVER 0x0351#endif#ifndef _SQLTYPES_H#include <sqltypes.h>#endif#ifdef __cplusplusextern "C" {#endif/* * Useful Constants */#define SQL_MAX_MESSAGE_LENGTH 512/* * Handle types */#define SQL_HANDLE_ENV 1#define SQL_HANDLE_DBC 2#define SQL_HANDLE_STMT 3#if (ODBCVER >= 0x0300)#define SQL_HANDLE_DESC 4#endif /* ODBCVER >= 0x0300 *//* * Function return codes */#define SQL_SUCCESS 0#define SQL_SUCCESS_WITH_INFO 1#define SQL_STILL_EXECUTING 2#define SQL_ERROR (-1)#define SQL_INVALID_HANDLE (-2)#define SQL_NEED_DATA 99#if (ODBCVER >= 0x0300)#define SQL_NO_DATA 100#endif /* ODBCVER >= 0x0300 *//* * Test for SQL_SUCCESS or SQL_SUCCESS_WITH_INFO */#define SQL_SUCCEEDED(rc) (((rc) & (~1)) == 0)/* * Special length values */#define SQL_NULL_DATA (-1)#define SQL_DATA_AT_EXEC (-2)/* * Flags for null-terminated strings */#define SQL_NTS (-3)#define SQL_NTSL (-3L)/* * Standard SQL datatypes, using ANSI type numbering */#define SQL_UNKNOWN_TYPE 0#define SQL_CHAR 1#define SQL_NUMERIC 2#define SQL_DECIMAL 3#define SQL_INTEGER 4#define SQL_SMALLINT 5#define SQL_FLOAT 6#define SQL_REAL 7#define SQL_DOUBLE 8#if (ODBCVER >= 0x0300)#define SQL_DATETIME 9#endif /* ODBCVER >= 0x0300 */#define SQL_VARCHAR 12/* * SQLGetTypeInfo request for all data types */#define SQL_ALL_TYPES 0/* * Statement attribute values for date/time data types */#if (ODBCVER >= 0x0300)#define SQL_TYPE_DATE 91#define SQL_TYPE_TIME 92#define SQL_TYPE_TIMESTAMP 93#endif /* ODBCVER >= 0x0300 *//* * Date/Time length constants */#if (ODBCVER >= 0x0300)#define SQL_DATE_LEN 10#define SQL_TIME_LEN 8 /* add P+1 if prec >0 */#define SQL_TIMESTAMP_LEN 19 /* add P+1 if prec >0 */#endif /* ODBCVER >= 0x0300 *//* * NULL status constants */#define SQL_NO_NULLS 0#define SQL_NULLABLE 1#define SQL_NULLABLE_UNKNOWN 2/* * NULL Handles */#define SQL_NULL_HENV 0#define SQL_NULL_HDBC 0#define SQL_NULL_HSTMT 0#if (ODBCVER >= 0x0300)#define SQL_NULL_HDESC 0#endif /* ODBCVER >= 0x0300 *//* * NULL handle for parent argument to SQLAllocHandle when allocating * a SQLHENV */#if (ODBCVER >= 0x0300)#define SQL_NULL_HANDLE 0L#endif /* ODBCVER >= 0x0300 *//* * CLI option values */#if (ODBCVER >= 0x0300)#define SQL_FALSE 0#define SQL_TRUE 1#endif /* ODBCVER >= 0x0300 *//* * Default conversion code for SQLBindCol(), SQLBindParam() and SQLGetData() */#if (ODBCVER >= 0x0300)#define SQL_DEFAULT 99#endif /* ODBCVER >= 0x0300 *//* * SQLDataSources/SQLFetchScroll - FetchOrientation */#define SQL_FETCH_NEXT 1#define SQL_FETCH_FIRST 2/* * SQLFetchScroll - FetchOrientation */#define SQL_FETCH_LAST 3#define SQL_FETCH_PRIOR 4#define SQL_FETCH_ABSOLUTE 5#define SQL_FETCH_RELATIVE 6/* * SQLFreeStmt */#define SQL_CLOSE 0#define SQL_DROP 1#define SQL_UNBIND 2#define SQL_RESET_PARAMS 3/* * SQLGetConnectAttr - connection attributes */#if (ODBCVER >= 0x0300)#define SQL_ATTR_AUTO_IPD 10001#define SQL_ATTR_METADATA_ID 10014#endif /* ODBCVER >= 0x0300 *//* * SQLGetData() code indicating that the application row descriptor * specifies the data type */#if (ODBCVER >= 0x0300)#define SQL_ARD_TYPE (-99)#endif /* ODBCVER >= 0x0300 *//* * SQLGetDescField - identifiers of fields in the SQL descriptor */#if (ODBCVER >= 0x0300)#define SQL_DESC_COUNT 1001#define SQL_DESC_TYPE 1002#define SQL_DESC_LENGTH 1003#define SQL_DESC_OCTET_LENGTH_PTR 1004#define SQL_DESC_PRECISION 1005#define SQL_DESC_SCALE 1006#define SQL_DESC_DATETIME_INTERVAL_CODE 1007#define SQL_DESC_NULLABLE 1008#define SQL_DESC_INDICATOR_PTR 1009#define SQL_DESC_DATA_PTR 1010#define SQL_DESC_NAME 1011#define SQL_DESC_UNNAMED 1012#define SQL_DESC_OCTET_LENGTH 1013#define SQL_DESC_ALLOC_TYPE 1099#endif /* ODBCVER >= 0x0300 *//* * SQLGetDescField - SQL_DESC_ALLOC_TYPE */#if (ODBCVER >= 0x0300)#define SQL_DESC_ALLOC_AUTO 1#define SQL_DESC_ALLOC_USER 2#endif /* ODBCVER >= 0x0300 *//* * SQLGetDescField - SQL_DESC_DATETIME_INTERVAL_CODE */#if (ODBCVER >= 0x0300)#define SQL_CODE_DATE 1#define SQL_CODE_TIME 2#define SQL_CODE_TIMESTAMP 3#endif /* ODBCVER >= 0x0300 *//* * SQLGetDescField - SQL_DESC_UNNAMED */#if (ODBCVER >= 0x0300)#define SQL_NAMED 0#define SQL_UNNAMED 1#endif /* ODBCVER >= 0x0300 *//* * SQLGetDiagField - identifiers of fields in the diagnostics area */#if (ODBCVER >= 0x0300)#define SQL_DIAG_RETURNCODE 1#define SQL_DIAG_NUMBER 2#define SQL_DIAG_ROW_COUNT 3#define SQL_DIAG_SQLSTATE 4#define SQL_DIAG_NATIVE 5#define SQL_DIAG_MESSAGE_TEXT 6#define SQL_DIAG_DYNAMIC_FUNCTION 7#define SQL_DIAG_CLASS_ORIGIN 8#define SQL_DIAG_SUBCLASS_ORIGIN 9#define SQL_DIAG_CONNECTION_NAME 10#define SQL_DIAG_SERVER_NAME 11#define SQL_DIAG_DYNAMIC_FUNCTION_CODE 12#endif /* ODBCVER >= 0x0300 *//* * SQLGetDiagField - SQL_DIAG_DYNAMIC_FUNCTION_CODE */#if (ODBCVER >= 0x0300)#define SQL_DIAG_ALTER_DOMAIN 3#define SQL_DIAG_ALTER_TABLE 4#define SQL_DIAG_CALL 7#define SQL_DIAG_CREATE_ASSERTION 6#define SQL_DIAG_CREATE_CHARACTER_SET 8#define SQL_DIAG_CREATE_COLLATION 10#define SQL_DIAG_CREATE_DOMAIN 23#define SQL_DIAG_CREATE_INDEX (-1)#define SQL_DIAG_CREATE_SCHEMA 64#define SQL_DIAG_CREATE_TABLE 77#define SQL_DIAG_CREATE_TRANSLATION 79#define SQL_DIAG_CREATE_VIEW 84#define SQL_DIAG_DELETE_WHERE 19#define SQL_DIAG_DROP_ASSERTION 24#define SQL_DIAG_DROP_CHARACTER_SET 25#define SQL_DIAG_DROP_COLLATION 26#define SQL_DIAG_DROP_DOMAIN 27#define SQL_DIAG_DROP_INDEX (-2)#define SQL_DIAG_DROP_SCHEMA 31#define SQL_DIAG_DROP_TABLE 32#define SQL_DIAG_DROP_TRANSLATION 33#define SQL_DIAG_DROP_VIEW 36#define SQL_DIAG_DYNAMIC_DELETE_CURSOR 38#define SQL_DIAG_DYNAMIC_UPDATE_CURSOR 81#define SQL_DIAG_GRANT 48#define SQL_DIAG_INSERT 50#define SQL_DIAG_REVOKE 59#define SQL_DIAG_SELECT_CURSOR 85#define SQL_DIAG_UNKNOWN_STATEMENT 0#define SQL_DIAG_UPDATE_WHERE 82#endif /* ODBCVER >= 0x0300 *//* * SQLGetEnvAttr - environment attribute */#if (ODBCVER >= 0x0300)#define SQL_ATTR_OUTPUT_NTS 10001#endif /* ODBCVER >= 0x0300 *//* * SQLGetFunctions */#define SQL_API_SQLALLOCCONNECT 1#define SQL_API_SQLALLOCENV 2#if (ODBCVER >= 0x0300)#define SQL_API_SQLALLOCHANDLE 1001#endif /* ODBCVER >= 0x0300 */#define SQL_API_SQLALLOCSTMT 3#define SQL_API_SQLBINDCOL 4#if (ODBCVER >= 0x0300)#define SQL_API_SQLBINDPARAM 1002#endif /* ODBCVER >= 0x0300 */#define SQL_API_SQLCANCEL 5#if (ODBCVER >= 0x0300)#define SQL_API_SQLCLOSECURSOR 1003#define SQL_API_SQLCOLATTRIBUTE 6#endif /* ODBCVER >= 0x0300 */#define SQL_API_SQLCOLUMNS 40#define SQL_API_SQLCONNECT 7#if (ODBCVER >= 0x0300)#define SQL_API_SQLCOPYDESC 1004#endif /* ODBCVER >= 0x0300 */#define SQL_API_SQLDATASOURCES 57#define SQL_API_SQLDESCRIBECOL 8#define SQL_API_SQLDISCONNECT 9#if (ODBCVER >= 0x0300)#define SQL_API_SQLENDTRAN 1005#endif /* ODBCVER >= 0x0300 */#define SQL_API_SQLERROR 10#define SQL_API_SQLEXECDIRECT 11#define SQL_API_SQLEXECUTE 12#define SQL_API_SQLFETCH 13#if (ODBCVER >= 0x0300)#define SQL_API_SQLFETCHSCROLL 1021#endif /* ODBCVER >= 0x0300 */#define SQL_API_SQLFREECONNECT 14#define SQL_API_SQLFREEENV 15#if (ODBCVER >= 0x0300)#define SQL_API_SQLFREEHANDLE 1006#endif /* ODBCVER >= 0x0300 */#define SQL_API_SQLFREESTMT 16#if (ODBCVER >= 0x0300)#define SQL_API_SQLGETCONNECTATTR 1007#endif /* ODBCVER >= 0x0300 */#define SQL_API_SQLGETCONNECTOPTION 42#define SQL_API_SQLGETCURSORNAME 17#define SQL_API_SQLGETDATA 43#if (ODBCVER >= 0x0300)#define SQL_API_SQLGETDESCFIELD 1008#define SQL_API_SQLGETDESCREC 1009#define SQL_API_SQLGETDIAGFIELD 1010#define SQL_API_SQLGETDIAGREC 1011#define SQL_API_SQLGETENVATTR 1012#endif /* ODBCVER >= 0x0300 */#define SQL_API_SQLGETFUNCTIONS 44#define SQL_API_SQLGETINFO 45#if (ODBCVER >= 0x0300)#define SQL_API_SQLGETSTMTATTR 1014#endif /* ODBCVER >= 0x0300 */#define SQL_API_SQLGETSTMTOPTION 46#define SQL_API_SQLGETTYPEINFO 47#define SQL_API_SQLNUMRESULTCOLS 18#define SQL_API_SQLPARAMDATA 48#define SQL_API_SQLPREPARE 19#define SQL_API_SQLPUTDATA 49#define SQL_API_SQLROWCOUNT 20#if (ODBCVER >= 0x0300)#define SQL_API_SQLSETCONNECTATTR 1016#endif /* ODBCVER >= 0x0300 */#define SQL_API_SQLSETCONNECTOPTION 50#define SQL_API_SQLSETCURSORNAME 21#if (ODBCVER >= 0x0300)#define SQL_API_SQLSETDESCFIELD 1017#define SQL_API_SQLSETDESCREC 1018#define SQL_API_SQLSETENVATTR 1019#endif /* ODBCVER >= 0x0300 */#define SQL_API_SQLSETPARAM 22#if (ODBCVER >= 0x0300)#define SQL_API_SQLSETSTMTATTR 1020#endif /* ODBCVER >= 0x0300 */#define SQL_API_SQLSETSTMTOPTION 51#define SQL_API_SQLSPECIALCOLUMNS 52#define SQL_API_SQLSTATISTICS 53#define SQL_API_SQLTABLES 54#define SQL_API_SQLTRANSACT 23/* * SQLGetInfo */#if (ODBCVER >= 0x0300)#define SQL_MAX_DRIVER_CONNECTIONS 0#define SQL_MAXIMUM_DRIVER_CONNECTIONS SQL_MAX_DRIVER_CONNECTIONS#define SQL_MAX_CONCURRENT_ACTIVITIES 1#define SQL_MAXIMUM_CONCURRENT_ACTIVITIES SQL_MAX_CONCURRENT_ACTIVITIES#endif /* ODBCVER >= 0x0300 */#define SQL_DATA_SOURCE_NAME 2#define SQL_FETCH_DIRECTION 8#define SQL_SERVER_NAME 13#define SQL_SEARCH_PATTERN_ESCAPE 14#define SQL_DBMS_NAME 17#define SQL_DBMS_VER 18#define SQL_ACCESSIBLE_TABLES 19#define SQL_ACCESSIBLE_PROCEDURES 20#define SQL_CURSOR_COMMIT_BEHAVIOR 23#define SQL_DATA_SOURCE_READ_ONLY 25#define SQL_DEFAULT_TXN_ISOLATION 26#define SQL_IDENTIFIER_CASE 28#define SQL_IDENTIFIER_QUOTE_CHAR 29#define SQL_MAX_COLUMN_NAME_LEN 30#define SQL_MAXIMUM_COLUMN_NAME_LENGTH SQL_MAX_COLUMN_NAME_LEN#define SQL_MAX_CURSOR_NAME_LEN 31#define SQL_MAXIMUM_CURSOR_NAME_LENGTH SQL_MAX_CURSOR_NAME_LEN#define SQL_MAX_SCHEMA_NAME_LEN 32#define SQL_MAXIMUM_SCHEMA_NAME_LENGTH SQL_MAX_SCHEMA_NAME_LEN#define SQL_MAX_CATALOG_NAME_LEN 34#define SQL_MAXIMUM_CATALOG_NAME_LENGTH SQL_MAX_CATALOG_NAME_LEN#define SQL_MAX_TABLE_NAME_LEN 35#define SQL_SCROLL_CONCURRENCY 43#define SQL_TXN_CAPABLE 46#define SQL_TRANSACTION_CAPABLE SQL_TXN_CAPABLE#define SQL_USER_NAME 47#define SQL_TXN_ISOLATION_OPTION 72#define SQL_TRANSACTION_ISOLATION_OPTION SQL_TXN_ISOLATION_OPTION#define SQL_INTEGRITY 73#define SQL_GETDATA_EXTENSIONS 81#define SQL_NULL_COLLATION 85#define SQL_ALTER_TABLE 86#define SQL_ORDER_BY_COLUMNS_IN_SELECT 90#define SQL_SPECIAL_CHARACTERS 94#define SQL_MAX_COLUMNS_IN_GROUP_BY 97#define SQL_MAXIMUM_COLUMNS_IN_GROUP_BY SQL_MAX_COLUMNS_IN_GROUP_BY#define SQL_MAX_COLUMNS_IN_INDEX 98#define SQL_MAXIMUM_COLUMNS_IN_INDEX SQL_MAX_COLUMNS_IN_INDEX#define SQL_MAX_COLUMNS_IN_ORDER_BY 99#define SQL_MAXIMUM_COLUMNS_IN_ORDER_BY SQL_MAX_COLUMNS_IN_ORDER_BY#define SQL_MAX_COLUMNS_IN_SELECT 100#define SQL_MAXIMUM_COLUMNS_IN_SELECT SQL_MAX_COLUMNS_IN_SELECT#define SQL_MAX_COLUMNS_IN_TABLE 101#define SQL_MAX_INDEX_SIZE 102#define SQL_MAXIMUM_INDEX_SIZE SQL_MAX_INDEX_SIZE#define SQL_MAX_ROW_SIZE 104#define SQL_MAXIMUM_ROW_SIZE SQL_MAX_ROW_SIZE#define SQL_MAX_STATEMENT_LEN 105#define SQL_MAXIMUM_STATEMENT_LENGTH SQL_MAX_STATEMENT_LEN#define SQL_MAX_TABLES_IN_SELECT 106#define SQL_MAXIMUM_TABLES_IN_SELECT SQL_MAX_TABLES_IN_SELECT#define SQL_MAX_USER_NAME_LEN 107#define SQL_MAXIMUM_USER_NAME_LENGTH SQL_MAX_USER_NAME_LEN#if (ODBCVER >= 0x0300)#define SQL_OJ_CAPABILITIES 115#define SQL_OUTER_JOIN_CAPABILITIES SQL_OJ_CAPABILITIES#endif /* ODBCVER >= 0x0300 */#if (ODBCVER >= 0x0300)#define SQL_XOPEN_CLI_YEAR 10000#define SQL_CURSOR_SENSITIVITY 10001#define SQL_DESCRIBE_PARAMETER 10002#define SQL_CATALOG_NAME 10003#define SQL_COLLATION_SEQ 10004#define SQL_MAX_IDENTIFIER_LEN 10005#define SQL_MAXIMUM_IDENTIFIER_LENGTH SQL_MAX_IDENTIFIER_LEN#endif /* ODBCVER >= 0x0300 *//* * SQLGetInfo - SQL_ALTER_TABLE */#if (ODBCVER >= 0x0200)#define SQL_AT_ADD_COLUMN 0x00000001L#define SQL_AT_DROP_COLUMN 0x00000002L#endif /* ODBCVER >= 0x0300 */#if (ODBCVER >= 0x0300)#define SQL_AT_ADD_CONSTRAINT 0x00000008L/* * The following bitmasks are ODBC extensions and defined in sqlext.h: * * #define SQL_AT_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_CURSOR_COMMIT_BEHAVIOR */#define SQL_CB_DELETE 0#define SQL_CB_CLOSE 1#define SQL_CB_PRESERVE 2/* * SQLGetInfo - SQL_FETCH_DIRECTION */#define SQL_FD_FETCH_NEXT 0x00000001L#define SQL_FD_FETCH_FIRST 0x00000002L#define SQL_FD_FETCH_LAST 0x00000004L#define SQL_FD_FETCH_PRIOR 0x00000008L#define SQL_FD_FETCH_ABSOLUTE 0x00000010L#define SQL_FD_FETCH_RELATIVE 0x00000020L/* * SQLGetInfo - SQL_GETDATA_EXTENSIONS */#define SQL_GD_ANY_COLUMN 0x00000001L#define SQL_GD_ANY_ORDER 0x00000002L/* * SQLGetInfo - SQL_IDENTIFIER_CASE */#define SQL_IC_UPPER 1#define SQL_IC_LOWER 2#define SQL_IC_SENSITIVE 3#define SQL_IC_MIXED 4/* * SQLGetInfo - SQL_NULL_COLLATION */#define SQL_NC_HIGH 0#define SQL_NC_LOW 1/* * SQLGetInfo - SQL_OJ_CAPABILITIES */#if (ODBCVER >= 0x0201)#define SQL_OJ_LEFT 0x00000001L#define SQL_OJ_RIGHT 0x00000002L
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -