📄 isqlext.h
字号:
/* This file has been modified from the original isqlext.h to add the* missing function prototypes and appropriate #defines. It is designed* to be a drop in replacement for isqlext.h from iodbc.*/#ifndef _INTRINSIC_SQLEXT_H# define _INTRINSIC_SQLEXT_H# include <isql.h># define SQL_STILL_EXECUTING 2# define SQL_NEED_DATA 99/* extend SQL datatypes */# define SQL_DATE 9# 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) /* conflict with SQL3 ??? */# define SQL_TYPE_DRIVER_START (-80)/* C to SQL datatype mapping */# 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_SIGNED_OFFSET (-20)# define SQL_UNSIGNED_OFFSET (-22)# 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 defined(SQL_TYPE_MIN)# undef SQL_TYPE_MIN # define SQL_TYPE_MIN SQL_BIT /* Note:If SQL_BIT uses SQL3 value (i.e. 14) then, * SQL_TYPE_MIN need to be defined as SQL_TINYINT * (i.e. -6). */# endif# define SQL_ALL_TYPES 0/* SQLDriverConnect flag values */# define SQL_DRIVER_NOPROMPT 0# define SQL_DRIVER_COMPLETE 1# define SQL_DRIVER_PROMPT 2# define SQL_DRIVER_COMPLETE_REQUIRED 3/* SQLSetParam extensions */# define SQL_DEFAULT_PARAM (-5)# define SQL_IGNORE (-6)/* function number for SQLGetFunctions and _iodbcdm_getproc */# define SQL_API_SQLALLOCCONNECT 1 # define SQL_API_SQLALLOCENV 2# define SQL_API_SQLALLOCSTMT 3# define SQL_API_SQLBINDCOL 4# define SQL_API_SQLCANCEL 5# define SQL_API_SQLCOLATTRIBUTES 6# define SQL_API_SQLCONNECT 7# define SQL_API_SQLDESCRIBECOL 8# define SQL_API_SQLDISCONNECT 9# define SQL_API_SQLERROR 10# define SQL_API_SQLEXECDIRECT 11# define SQL_API_SQLEXECUTE 12# define SQL_API_SQLFETCH 13# define SQL_API_SQLFREECONNECT 14# define SQL_API_SQLFREEENV 15# define SQL_API_SQLFREESTMT 16 # define SQL_API_SQLGETCURSORNAME 17# define SQL_API_SQLNUMRESULTCOLS 18# define SQL_API_SQLPREPARE 19# define SQL_API_SQLROWCOUNT 20# define SQL_API_SQLSETCURSORNAME 21# define SQL_API_SQLSETPARAM 22# define SQL_API_SQLTRANSACT 23# define SQL_NUM_FUNCTIONS 23# define SQL_EXT_API_START 40# define SQL_API_SQLCOLUMNS 40# define SQL_API_SQLDRIVERCONNECT 41# define SQL_API_SQLGETCONNECTOPTION 42# define SQL_API_SQLGETDATA 43# define SQL_API_SQLGETFUNCTIONS 44# define SQL_API_SQLGETINFO 45# define SQL_API_SQLGETSTMTOPTION 46# define SQL_API_SQLGETTYPEINFO 47# define SQL_API_SQLPARAMDATA 48# define SQL_API_SQLPUTDATA 49# define SQL_API_SQLSETCONNECTOPTION 50# define SQL_API_SQLSETSTMTOPTION 51# define SQL_API_SQLSPECIALCOLUMNS 52# define SQL_API_SQLSTATISTICS 53# define SQL_API_SQLTABLES 54# define SQL_API_SQLBROWSECONNECT 55# define SQL_API_SQLCOLUMNPRIVILEGES 56# define SQL_API_SQLDATASOURCES 57# define SQL_API_SQLDESCRIBEPARAM 58# 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# define SQL_API_SQLDRIVERS 71# define SQL_API_SQLBINDPARAMETER 72# define SQL_EXT_API_LAST SQL_API_SQLBINDPARAMETER#define SQL_NUM_EXTENSIONS (SQL_EXT_API_LAST - SQL_EXT_API_START + 1)# define SQL_API_ALL_FUNCTIONS 0/* SQLGetInfo infor number */# define SQL_INFO_FIRST 0# define SQL_DRIVER_HDBC 3# define SQL_DRIVER_HENV 4# define SQL_DRIVER_HSTMT 5# define SQL_DRIVER_NAME 6# define SQL_ODBC_VER 10# define SQL_CURSOR_COMMIT_BEHAVIOR 23# define SQL_CURSOR_ROLLBACK_BEHAVIOR 24# define SQL_DEFAULT_TXN_ISOLATION 26# define SQL_TXN_ISOLATION_OPTION 72# define SQL_NON_NULLABLE_COLUMNS 75# define SQL_DRIVER_HLIB 76# define SQL_DRIVER_ODBC_VER 77# define SQL_QUALIFIER_LOCATION 114# define SQL_INFO_LAST SQL_QUALIFIER_LOCATION# define SQL_INFO_DRIVER_START 1000/* SQL_TXN_ISOLATION_OPTION masks */# define SQL_TXN_READ_UNCOMMITTED 0x00000001L# define SQL_TXN_READ_COMMITTED 0x00000002L# define SQL_TXN_REPEATABLE_READ 0x00000004L# define SQL_TXN_SERIALIZABLE 0x00000008L# define SQL_TXN_VERSIONING 0x00000010L/* SQL_CURSOR_COMMIT_BEHAVIOR and SQL_CURSOR_ROLLBACK_BEHAVIOR values */# define SQL_CB_DELETE 0x0000# define SQL_CB_CLOSE 0x0001# define SQL_CB_PRESERVE 0x0002/* options for SQLGetStmtOption/SQLSetStmtOption */# define SQL_QUERY_TIMEOUT 0# define SQL_MAX_ROWS 1# define SQL_NOSCAN 2# define SQL_MAX_LENGTH 3# define SQL_ASYNC_ENABLE 4# 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 */# define SQL_STMT_OPT_MAX SQL_ROW_NUMBER# define SQL_STMT_OPT_MIN SQL_QUERY_TIMEOUT/* * ODBC 3.0 renames the above to SQL_ATTR_ values. At this time I don't * know if they have also been renumbered or not, I will assume not. */# define SQL_ATTR_QUERY_TIMEOUT 0# define SQL_ATTR_MAX_ROWS 1# define SQL_ATTR_NOSCAN 2# define SQL_ATTR_MAX_LENGTH 3# define SQL_ATTR_ASYNC_ENABLE 4# define SQL_ATTR_BIND_TYPE 5# define SQL_ATTR_CURSOR_TYPE 6# define SQL_ATTR_CONCURRENCY 7# define SQL_ATTR_KEYSET_SIZE 8# define SQL_ATTR_ROWSET_SIZE 9# define SQL_ATTR_SIMULATE_CURSOR 10# define SQL_ATTR_RETRIEVE_DATA 11# define SQL_ATTR_USE_BOOKMARKS 12# define SQL_ATTR_GET_BOOKMARK 13 /* GetStmtOption Only */# define SQL_ATTR_ROW_NUMBER 14 /* GetStmtOption Only *//* New in ODBC 3.0 */#define SQL_ATTR_APP_PARAM_DESC 15#define SQL_ATTR_APP_ROW_DESC 16#define SQL_ATTR_CURSOR_SCROLLABLE 17#define SQL_ATTR_CURSOR_SENSITITY 18#define SQL_ATTR_ENABLE_AUTO_IPD 19#define SQL_ATTR_FETCH_BOOKMARK_PTR 20#define SQL_ATTR_IMP_PARAM_DESC 21#define SQL_ATTR_IMP_ROW_DESC 22#define SQL_ATTR_METADATA_ID 23#define SQL_ATTR_PARAM_BIND_OFFSET_PTR 24#define SQL_ATTR_PARAM_BIND_TYPE 25#define SQL_ATTR_PARAM_OPERATION_PTR 26#define SQL_ATTR_PARAM_STATUS_PTR 27#define SQL_ATTR_PARAMS_PROCESSED_PTR 28#define SQL_ATTR_PARAMSET_SIZE 29#define SQL_ATTR_ROW_ARRAY_SIZE 30#define SQL_ATTR_ROW_BIND_OFFSET_PTR 31#define SQL_ATTR_ROW_OPERATION_PTR 32#define SQL_ATTR_ROW_STATUS_PTR 33#define SQL_ATTR_ROWS_FETCHED_PTR 34#define SQL_STMT_ATTR_MIN SQL_ATTR_QUERY_TIMEOUT#define SQL_STMT_ATTR_MAX SQL_ATTR_ROWS_FETCHED_PTR/* SQL_QUERY_TIMEOUT options */# define SQL_QUERY_TIMEOUT_DEFAULT 0UL/* SQL_MAX_ROWS options */# define SQL_MAX_ROWS_DEFAULT 0UL/* SQL_MAX_LENGTH options */# define SQL_MAX_LENGTH_DEFAULT 0UL/* SQL_CONCURRENCY options */# define SQL_CONCUR_READ_ONLY 1# define SQL_CONCUR_LOCK 2# define SQL_CONCUR_ROWVER 3# define SQL_CONCUR_VALUES 4/* options for SQLSetConnectOption/SQLGetConnectOption */# 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# define SQL_CONN_OPT_MAX SQL_PACKET_SIZE# define SQL_CONNECT_OPT_DRVR_START 1000# define SQL_CONN_OPT_MIN SQL_ACCESS_MODE/* 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 "odbc.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/* Column types and scopes in SQLSpecialColumns. */# define SQL_BEST_ROWID 1# define SQL_ROWVER 2# define SQL_SCOPE_CURROW 0# define SQL_SCOPE_TRANSACTION 1# define SQL_SCOPE_SESSION 2/* SQLExtendedFetch flag values */# define SQL_FETCH_NEXT 1# define SQL_FETCH_FIRST 2# define SQL_FETCH_LAST 3# define SQL_FETCH_PRIOR 4# define SQL_FETCH_ABSOLUTE 5# define SQL_FETCH_RELATIVE 6# define SQL_FETCH_BOOKMARK 8/* Defines for SQLBindParameter/SQLProcedureColumns */#define SQL_PARAM_TYPE_UNKNOWN 0#define SQL_PARAM_INPUT 1#define SQL_PARAM_INPUT_OUTPUT 2#define SQL_RESULT_COL 3#define SQL_PARAM_OUTPUT 4#define SQL_RETURN_VALUE 5/* Defines used by Driver Manager for mapping SQLSetParam to SQLBindParameter */# define SQL_PARAM_TYPE_DEFAULT SQL_PARAM_INPUT_OUTPUT# define SQL_SETPARAM_VALUE_MAX (-1L)/* SQLStatistics flag values */# define SQL_INDEX_UNIQUE 0# define SQL_INDEX_ALL 1# define SQL_QUICK 0# define SQL_ENSURE 1/* SQLSetScrollOption flag values */# define SQL_SCROLL_FORWARD_ONLY 0L# define SQL_SCROLL_KEYSET_DRIVEN (-1L)# define SQL_SCROLL_DYNAMIC (-2L)# define SQL_SCROLL_STATIC (-3L) /* Everything below has been added to the original isqlext.h that comes * with iodbc.*/#define SCHAR signed char#define FLOAT float#define DOUBLE double/* SQL DATA TYPES */typedef UCHAR SQLCHAR;typedef SWORD SQLSMALLINT;typedef UWORD SQLUSMALLINT;typedef SDWORD SQLINTEGER;typedef UDWORD SQLUINTEGER;typedef FLOAT SQLREAL;typedef DOUBLE SQLDOUBLE;typedef DOUBLE SQLFLOAT;typedef SCHAR SQLSCHAR;typedef UDWORD BOOKMARK;#ifdef GCC /* Because I know GCC supports 64 bit ints */typedef long long int ODBCINT64;typedef unsigned ODBCINT64 SQLUBIGINT;typedef ODBCINT64 SQLBIGINT;#else /* Used even on platforms with 64 bit ints but not GCC */typedef struct { SQLUINTEGER dwLowWord; SQLUINTEGER dwHighWord;} SQLUBIGINT;typedef struct { SQLUINTEGER dwLowWord; SQLINTEGER dwHighWord;} SQLBIGINT;#endif /* GCC */typedef struct tagDATE_STRUCT { SQLSMALLINT year; SQLUSMALLINT month; SQLUSMALLINT day;} DATE_STRUCT,SQL_DATE_STRUCT;typedef struct tagTIME_STRUCT { SQLUSMALLINT hour; SQLUSMALLINT minute; SQLUSMALLINT second;} TIME_STRUCT,SQL_TIME_STRUCT;typedef struct tagTIMESTAMP_STRUCT { SQLSMALLINT year; SQLUSMALLINT month; SQLUSMALLINT day; SQLUSMALLINT hour; SQLUSMALLINT minute; SQLUSMALLINT second; SQLUINTEGER fraction;} TIMESTAMP_STRUCT,SQL_TIMESTAMP_STRUCT;/* postodbc doesn't use these but what the heck *//* Don't know what SQL_MAX_NUMERIC_LEN should be so I can't include this. It's * ODBC 3.0 anyway.typedef struct tagSQL_NUMERIC_STRUCT { SQLCHAR precision; SQLSCHAR scale; SQLCHAR sign; SQLCHAR val[SQL_MAX_NUMERIC_LEN];} SQL_NUMERIC_STRUCT;*/typedef struct tagSQLGUID { DWORD Data1; WORD Data2; WORD Data3; BYTE Data4[8];} SQLGUID;typedef enum { SQL_IS_YEAR = 1, SQL_IS_MONTH = 2, SQL_IS_DAY = 3, SQL_IS_HOUR = 4, SQL_IS_MINUTE = 5, SQL_IS_SECOND = 6, SQL_IS_YEAR_TO_MONTH = 7, SQL_IS_DAY_TO_HOUR = 8, SQL_IS_DAY_TO_MINUTE = 9, SQL_IS_DAY_TO_SECOND = 10, SQL_IS_HOUR_TO_MINUTE = 11, SQL_IS_HOUR_TO_SECOND = 12, SQL_IS_MINUTE_TO_SECOND = 13} SQLINTERVAL;typedef struct tagSQL_YEAR_MONTH { SQLUINTEGER year; SQLUINTEGER month;} SQL_YEAR_MONTH_STRUCT;typedef struct tagSQL_DAY_SECOND { SQLUINTEGER day; SQLUINTEGER hour; SQLUINTEGER minute; SQLUINTEGER second; SQLUINTEGER fraction;} SQL_DAY_SECOND_STRUCT;typedef struct tagSQL_INTERVAL_STRUCT { SQLINTERVAL interval_type; SQLSMALLINT interval_sign; union { SQL_YEAR_MONTH_STRUCT year_month; SQL_DAY_SECOND_STRUCT day_second; } intval;} SQL_INTERVAL_STRUCT;#define SQL_MAX_OPTION_STRING_LENGTH 256#define SQL_NUM_EXTENSIONS (SQL_EXT_API_LAST - SQL_EXT_API_START + 1)/* defines for SQL datatypes *//*#define SQL_TYPE_DATE#define SQL_TYPE_TIME#define SQL_TYPE_TIMESTAMP#define SQL_CODE_DATE#define SQL_CODE_TIME#define SQL_CODE_TIMESTAMP#define SQL_CODE_MONTH#define SQL_CODE_YEAR#define SQL_CODE_YEAR_TO_MONTH#define SQL_CODE_DAY#define SQL_CODE_HOUR#define SQL_CODE_MINUTE#define SQL_CODE_SECOND#define SQL_CODE_DAY_TO_HOUR#define SQL_CODE_DAY_TO_MINUTE#define SQL_CODE_DAY_TO_SECOND#define SQL_CODE_HOUR_TO_MINUTE#define SQL_CODE_HOUR_TO_SECOND#define SQL_CODE_MINUTE_TO_SECOND*/#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)#define SQL_UNICODE (-95)#define SQL_UNICODE_VARCHAR (-96)#define SQL_UNICODE_LONGVARCHAR (-97)#define SQL_UNICODE_CHAR SQL_UNICODE/* C to SQL data types *//*#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_GUID SQLGUID*/#define SQL_C_INTERVAL_MONTH SQL_INTERVAL_MONTH#define SQL_C_INTERVAL_YEAR SQL_INTERVAL_YEAR#define SQL_C_INTERVAL_YEAR_TO_MONTH SQL_INTERVAL_YEAR_TO_MONTH#define SQL_C_INTERVAL_DAY SQL_INTERVAL_DAY#define SQL_C_INTERVAL_HOUR SQL_INTERVAL_HOUR
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -