Reactos
at master 159 lines 3.7 kB view raw
1#ifndef __SQLTYPES 2#define __SQLTYPES 3 4#ifdef __cplusplus 5extern "C" { 6#endif 7 8#define SQL_API __stdcall 9 10#ifndef RC_INVOKED 11#define __need_wchar_t 12#include <stddef.h> 13 14typedef signed char SCHAR; 15typedef long SDWORD; 16typedef short SWORD; 17typedef ULONG UDWORD; 18typedef USHORT UWORD; 19typedef signed long SLONG; 20typedef signed short SSHORT; 21typedef double SDOUBLE; 22typedef double LDOUBLE; 23typedef float SFLOAT; 24typedef PVOID PTR; 25typedef PVOID HENV; 26typedef PVOID HDBC; 27typedef PVOID HSTMT; 28typedef short RETCODE; 29typedef UCHAR SQLCHAR; 30typedef SDWORD SQLINTEGER; 31typedef SWORD SQLSMALLINT; 32typedef UDWORD SQLUINTEGER; 33typedef UWORD SQLUSMALLINT; 34typedef PVOID SQLPOINTER; 35typedef void* SQLHENV; 36typedef void* SQLHDBC; 37typedef void* SQLHSTMT; 38typedef SQLSMALLINT SQLRETURN; 39typedef HWND SQLHWND; 40 41#ifdef _WIN64 42typedef INT64 SQLLEN; 43typedef UINT64 SQLULEN; 44typedef UINT64 SQLSETPOSIROW; 45#else 46#define SQLLEN SQLINTEGER 47#define SQLULEN SQLUINTEGER 48#define SQLSETPOSIROW SQLUSMALLINT 49#endif /* _WIN64 */ 50 51typedef SQLULEN BOOKMARK; 52typedef SQLLEN SQLROWOFFSET; 53typedef SQLULEN SQLROWCOUNT; 54typedef SQLULEN SQLTRANSID; 55 56typedef wchar_t SQLWCHAR; 57#ifdef UNICODE 58typedef SQLWCHAR SQLTCHAR; 59#else 60typedef SQLCHAR SQLTCHAR; 61#endif /* UNICODE */ 62 63typedef struct tagDATE_STRUCT { 64 SQLSMALLINT year; 65 SQLUSMALLINT month; 66 SQLUSMALLINT day; 67} DATE_STRUCT; 68typedef struct tagTIME_STRUCT { 69 SQLUSMALLINT hour; 70 SQLUSMALLINT minute; 71 SQLUSMALLINT second; 72} TIME_STRUCT; 73typedef struct tagTIMESTAMP_STRUCT { 74 SQLSMALLINT year; 75 SQLUSMALLINT month; 76 SQLUSMALLINT day; 77 SQLUSMALLINT hour; 78 SQLUSMALLINT minute; 79 SQLUSMALLINT second; 80 SQLUINTEGER fraction; 81} TIMESTAMP_STRUCT; 82 83#if (ODBCVER >= 0x0300) 84typedef SCHAR SQLSCHAR; 85typedef void* SQLHANDLE; 86typedef void* SQLHDESC; 87typedef unsigned char SQLDATE; 88typedef unsigned char SQLDECIMAL; 89typedef double SQLDOUBLE; 90typedef double SQLFLOAT; 91typedef unsigned char SQLNUMERIC; 92typedef float SQLREAL; 93typedef unsigned char SQLTIME; 94typedef unsigned char SQLTIMESTAMP; 95typedef unsigned char SQLVARCHAR; 96#define ODBCINT64 __int64 97typedef __int64 SQLBIGINT; 98typedef unsigned __int64 SQLUBIGINT; 99typedef DATE_STRUCT SQL_DATE_STRUCT; 100typedef TIME_STRUCT SQL_TIME_STRUCT; 101typedef TIMESTAMP_STRUCT SQL_TIMESTAMP_STRUCT; 102typedef enum { 103 SQL_IS_YEAR = 1,SQL_IS_MONTH,SQL_IS_DAY,SQL_IS_HOUR, 104 SQL_IS_MINUTE,SQL_IS_SECOND,SQL_IS_YEAR_TO_MONTH,SQL_IS_DAY_TO_HOUR, 105 SQL_IS_DAY_TO_MINUTE,SQL_IS_DAY_TO_SECOND,SQL_IS_HOUR_TO_MINUTE, 106 SQL_IS_HOUR_TO_SECOND,SQL_IS_MINUTE_TO_SECOND 107} SQLINTERVAL; 108typedef struct tagSQL_YEAR_MONTH { 109 SQLUINTEGER year; 110 SQLUINTEGER month; 111} SQL_YEAR_MONTH_STRUCT; 112typedef struct tagSQL_DAY_SECOND { 113 SQLUINTEGER day; 114 SQLUINTEGER hour; 115 SQLUINTEGER minute; 116 SQLUINTEGER second; 117 SQLUINTEGER fraction; 118} SQL_DAY_SECOND_STRUCT; 119typedef struct tagSQL_INTERVAL_STRUCT { 120 SQLINTERVAL interval_type; 121 SQLSMALLINT interval_sign; 122 union { 123 SQL_YEAR_MONTH_STRUCT year_month; 124 SQL_DAY_SECOND_STRUCT day_second; 125 } intval; 126} SQL_INTERVAL_STRUCT; 127#define SQL_MAX_NUMERIC_LEN 16 128typedef struct tagSQL_NUMERIC_STRUCT { 129 SQLCHAR precision; 130 SQLSCHAR scale; 131 SQLCHAR sign; 132 SQLCHAR val[SQL_MAX_NUMERIC_LEN]; 133} SQL_NUMERIC_STRUCT; 134#endif /* ODBCVER >= 0x0300 */ 135 136#if (ODBCVER >= 0x0350) 137 138#ifdef _GUID_DEFINED 139# warning _GUID_DEFINED is deprecated, use GUID_DEFINED instead 140#endif 141 142#if defined _GUID_DEFINED || defined GUID_DEFINED 143typedef GUID SQLGUID; 144#else 145typedef struct tagSQLGUID{ 146 DWORD Data1; 147 WORD Data2; 148 WORD Data3; 149 BYTE Data4[ 8 ]; 150} SQLGUID; 151#endif /* GUID_DEFINED */ 152#endif /* ODBCVER >= 0x0350 */ 153#endif /* RC_INVOKED */ 154 155#ifdef __cplusplus 156} 157#endif 158 159#endif /* __SQLTYPES */