diff options
Diffstat (limited to 'winsup/w32api/include/sqltypes.h')
-rw-r--r-- | winsup/w32api/include/sqltypes.h | 113 |
1 files changed, 104 insertions, 9 deletions
diff --git a/winsup/w32api/include/sqltypes.h b/winsup/w32api/include/sqltypes.h index 4d9529d9d..c2f1bfa50 100644 --- a/winsup/w32api/include/sqltypes.h +++ b/winsup/w32api/include/sqltypes.h @@ -4,14 +4,16 @@ extern "C" { #endif #define SQL_API __stdcall -#pragma pack(push,1) +#ifndef RC_INVOKED +#define __need_wchar_t +#include <stddef.h> typedef signed char SCHAR; typedef long SDWORD; typedef short SWORD; typedef ULONG UDWORD; typedef USHORT UWORD; -typedef long SLONG; -typedef short SSHORT; +typedef signed long SLONG; +typedef signed short SSHORT; typedef double SDOUBLE; typedef double LDOUBLE; typedef float SFLOAT; @@ -24,15 +26,61 @@ typedef UCHAR SQLCHAR; typedef SCHAR SQLSCHAR; typedef SDWORD SQLINTEGER; typedef SWORD SQLSMALLINT; +#ifndef __WIN64 typedef UDWORD SQLUINTEGER; +#endif typedef UWORD SQLUSMALLINT; typedef PVOID SQLPOINTER; -typedef HENV SQLHENV; -typedef HDBC SQLHDBC; -typedef HSTMT SQLHSTMT; +#if (ODBCVER >= 0x0300) +typedef void* SQLHANDLE; +typedef SQLHANDLE SQLHENV; +typedef SQLHANDLE SQLHDBC; +typedef SQLHANDLE SQLHSTMT; +typedef SQLHANDLE SQLHDESC; +#else +typedef void* SQLHENV; +typedef void* SQLHDBC; +typedef void* SQLHSTMT; +#endif typedef SQLSMALLINT SQLRETURN; typedef HWND SQLHWND; typedef ULONG BOOKMARK; +#ifdef _WIN64 +typedef INT64 SQLLEN; +typedef INT64 SQLROWOFFSET; +typedef UINT64 SQLROWCOUNT; +typedef UINT64 SQLULEN; +typedef UINT64 SQLTRANSID; +typedef unsigned long SQLSETPOSIROW; +#else +#define SQLLEN SQLINTEGER +#define SQLROWOFFSET SQLINTEGER +#define SQLROWCOUNT SQLUINTEGER +#define SQLULEN SQLUINTEGER +#define SQLTRANSID DWORD +#define SQLSETPOSIROW SQLUSMALLINT +#endif +typedef wchar_t SQLWCHAR; +#ifdef UNICODE +typedef SQLWCHAR SQLTCHAR; +#else +typedef SQLCHAR SQLTCHAR; +#endif /* UNICODE */ +#if (ODBCVER >= 0x0300) +typedef unsigned char SQLDATE; +typedef unsigned char SQLDECIMAL; +typedef double SQLDOUBLE; +typedef double SQLFLOAT; +typedef unsigned char SQLNUMERIC; +typedef float SQLREAL; +typedef unsigned char SQLTIME; +typedef unsigned char SQLTIMESTAMP; +typedef unsigned char SQLVARCHAR; +#define ODBCINT64 __int64 +typedef __int64 SQLBIGINT; +typedef unsigned __int64 SQLUBIGINT; +#endif + typedef struct tagDATE_STRUCT { SQLSMALLINT year; SQLUSMALLINT month; @@ -52,9 +100,56 @@ typedef struct tagTIMESTAMP_STRUCT { SQLUSMALLINT second; SQLUINTEGER fraction; } TIMESTAMP_STRUCT; -typedef void* SQLHANDLE; -typedef SQLHANDLE SQLHDESC; -#pragma pack(pop) +#if (ODBCVER >= 0x0300) +typedef DATE_STRUCT SQL_DATE_STRUCT; +typedef TIME_STRUCT SQL_TIME_STRUCT; +typedef TIMESTAMP_STRUCT SQL_TIMESTAMP_STRUCT; +typedef enum { + SQL_IS_YEAR = 1,SQL_IS_MONTH,SQL_IS_DAY,SQL_IS_HOUR, + SQL_IS_MINUTE,SQL_IS_SECOND,SQL_IS_YEAR_TO_MONTH,SQL_IS_DAY_TO_HOUR, + SQL_IS_DAY_TO_MINUTE,SQL_IS_DAY_TO_SECOND,SQL_IS_HOUR_TO_MINUTE, + SQL_IS_HOUR_TO_SECOND,SQL_IS_MINUTE_TO_SECOND +} 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_NUMERIC_LEN 16 +typedef struct tagSQL_NUMERIC_STRUCT { + SQLCHAR precision; + SQLSCHAR scale; + SQLCHAR sign; + SQLCHAR val[SQL_MAX_NUMERIC_LEN]; +} SQL_NUMERIC_STRUCT; +#endif /* ODBCVER >= 0x0300 */ +#if (ODBCVER >= 0x0350) +#ifdef _GUID_DEFINED +typedef GUID SQLGUID; +#else +typedef struct tagSQLGUID{ + DWORD Data1; + WORD Data2; + WORD Data3; + BYTE Data4[ 8 ]; +} SQLGUID; +#endif /* _GUID_DEFINED */ +#endif /* ODBCVER >= 0x0350 */ +#endif /* RC_INVOKED */ #ifdef __cplusplus } #endif |