📄 sqltypes.h
字号:
/*********************************************************************** SQLTYPES.H - This file defines the types used in ODBC**** (C) Copyright 1995-1996 By Microsoft Corp.**** Created 04/10/95 for 2.50 specification** Updated 12/11/95 for 3.00 specification*********************************************************************/#ifndef __SQLTYPES#define __SQLTYPES/* if ODBCVER is not defined, assume version 3.00 */#ifndef ODBCVER#define ODBCVER 0x0300#endif /* ODBCVER */#ifdef __cplusplusextern "C" { /* Assume C declarations for C++ */#endif /* __cplusplus *//* environment specific definitions */#ifndef EXPORT#define EXPORT #endif#ifdef WIN32#define SQL_API __stdcall#else#define SQL_API#endif#ifndef RC_INVOKED/* API declaration data types */typedef unsigned char SQLCHAR;#if (ODBCVER >= 0x0300)typedef signed char SQLSCHAR;typedef unsigned char SQLDATE;typedef unsigned char SQLDECIMAL;typedef double SQLDOUBLE;typedef double SQLFLOAT;#endiftypedef long SQLINTEGER;typedef unsigned long SQLUINTEGER;#if (ODBCVER >= 0x0300)typedef unsigned char SQLNUMERIC;#endiftypedef void * SQLPOINTER;#if (ODBCVER >= 0x0300)typedef float SQLREAL;#endiftypedef short SQLSMALLINT;typedef unsigned short SQLUSMALLINT;#if (ODBCVER >= 0x0300)typedef unsigned char SQLTIME;typedef unsigned char SQLTIMESTAMP;typedef unsigned char SQLVARCHAR;#endif/* function return type */typedef SQLSMALLINT SQLRETURN;/* generic data structures */#if (ODBCVER >= 0x0300)#if defined(WIN32)typedef void* SQLHANDLE;#elsetypedef SQLINTEGER SQLHANDLE;#endif /* defined(WIN32) */typedef SQLHANDLE SQLHENV;typedef SQLHANDLE SQLHDBC;typedef SQLHANDLE SQLHSTMT;typedef SQLHANDLE SQLHDESC;#else#if defined(WIN32)typedef void* SQLHENV;typedef void* SQLHDBC;typedef void* SQLHSTMT;#elsetypedef SQLINTEGER SQLHENV;typedef SQLINTEGER SQLHDBC;typedef SQLINTEGER SQLHSTMT;#endif /* defined(WIN32) */#endif /* ODBCVER >= 0x0300 *//* SQL portable types for C */typedef unsigned char UCHAR;typedef signed char SCHAR;typedef SCHAR SQLSCHAR;typedef long int SDWORD;typedef short int SWORD;typedef unsigned long int UDWORD;typedef unsigned short int UWORD;typedef UDWORD SQLUINTEGER;typedef signed long SLONG;typedef signed short SSHORT;typedef unsigned long ULONG;typedef unsigned short USHORT;typedef double SDOUBLE;typedef double LDOUBLE; typedef float SFLOAT;#ifdef PTR#undef PTR#endiftypedef void* PTR;typedef void* HENV;typedef void* HDBC;typedef void* HSTMT;typedef signed short RETCODE;#if defined(WIN32) || defined(OS2)typedef HWND SQLHWND;#elif defined (UNIX)typedef Widget SQLHWND;#else/* placehold for future O/S GUI window handle definition */typedef SQLPOINTER SQLHWND;#endif#ifndef __SQLDATE#define __SQLDATE/* transfer types for DATE, TIME, TIMESTAMP */typedef struct tagDATE_STRUCT{ SQLSMALLINT year; SQLUSMALLINT month; SQLUSMALLINT day;} DATE_STRUCT;#if (ODBCVER >= 0x0300)typedef DATE_STRUCT SQL_DATE_STRUCT;#endif /* ODBCVER >= 0x0300 */typedef struct tagTIME_STRUCT{ SQLUSMALLINT hour; SQLUSMALLINT minute; SQLUSMALLINT second;} TIME_STRUCT;#if (ODBCVER >= 0x0300)typedef TIME_STRUCT SQL_TIME_STRUCT;#endif /* ODBCVER >= 0x0300 */typedef struct tagTIMESTAMP_STRUCT{ SQLSMALLINT year; SQLUSMALLINT month; SQLUSMALLINT day; SQLUSMALLINT hour; SQLUSMALLINT minute; SQLUSMALLINT second; SQLUINTEGER fraction;} TIMESTAMP_STRUCT;#if (ODBCVER >= 0x0300)typedef TIMESTAMP_STRUCT SQL_TIMESTAMP_STRUCT;#endif /* ODBCVER >= 0x0300 *//* * enumerations for DATETIME_INTERVAL_SUBCODE values for interval data types * these values are from SQL-92 */#if (ODBCVER >= 0x0300)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;#endif /* ODBCVER >= 0x0300 */#if (ODBCVER >= 0x0300)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;#endif /* ODBCVER >= 0x0300 */#endif /* __SQLDATE *//* the ODBC C types for SQL_C_SBIGINT and SQL_C_UBIGINT */#if (ODBCVER >= 0x0300)#if (_MSC_VER >= 900)#define ODBCINT64 __int64#endif /* If using other compilers, define ODBCINT64 to the approriate 64 bit integer type */#ifdef ODBCINT64typedef ODBCINT64 SQLBIGINT;typedef unsigned ODBCINT64 SQLUBIGINT;#endif#endif /* ODBCVER >= 0x0300 *//* internal representation of numeric data type */#if (ODBCVER >= 0x0300)#define SQL_MAX_NUMERIC_LEN 16typedef struct tagSQL_NUMERIC_STRUCT{ SQLCHAR precision; SQLSCHAR scale; SQLCHAR sign; /* 1 if positive, 0 if negative */ SQLCHAR val[SQL_MAX_NUMERIC_LEN];} SQL_NUMERIC_STRUCT;#endif /* ODBCVER >= 0x0300 */typedef unsigned long int BOOKMARK;typedef wchar_t SQLWCHAR;#ifdef UNICODEtypedef SQLWCHAR SQLTCHAR;#elsetypedef SQLCHAR SQLTCHAR;#endif /* UNICODE */#endif /* RC_INVOKED */#ifdef __cplusplus} /* End of extern "C" { */#endif /* __cplusplus */#endif /* #ifndef __SQLTYPES */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -