/** * This file has no copyright assigned and is placed in the Public Domain. * This file is part of the mingw-w64 runtime package. * No warranty is given; refer to the file DISCLAIMER.PD within this package. */ #ifndef __SQLTYPES #define __SQLTYPES #ifndef ODBCVER #define ODBCVER 0x0351 #endif #ifdef __cplusplus extern "C" { #endif #ifndef EXPORT #define EXPORT #endif #if defined(_ARM_) #define SQL_API #else #define SQL_API __stdcall #endif #ifndef RC_INVOKED 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; #endif typedef __LONG32 SQLINTEGER; typedef unsigned __LONG32 SQLUINTEGER; #ifdef _WIN64 typedef INT64 SQLLEN; typedef UINT64 SQLULEN; typedef UINT64 SQLSETPOSIROW; #else #define SQLLEN SQLINTEGER #define SQLULEN SQLUINTEGER #define SQLSETPOSIROW SQLUSMALLINT #endif typedef SQLULEN SQLROWCOUNT; typedef SQLULEN SQLROWSETSIZE; typedef SQLULEN SQLTRANSID; typedef SQLLEN SQLROWOFFSET; #if (ODBCVER >= 0x0300) typedef unsigned char SQLNUMERIC; #endif typedef void *SQLPOINTER; #if (ODBCVER >= 0x0300) typedef float SQLREAL; #endif typedef short SQLSMALLINT; typedef unsigned short SQLUSMALLINT; #if (ODBCVER >= 0x0300) typedef unsigned char SQLTIME; typedef unsigned char SQLTIMESTAMP; typedef unsigned char SQLVARCHAR; #endif typedef SQLSMALLINT SQLRETURN; #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 #ifndef BASETYPES #define BASETYPES typedef unsigned __LONG32 ULONG; typedef ULONG *PULONG; typedef unsigned short USHORT; typedef USHORT *PUSHORT; typedef unsigned char UCHAR; typedef UCHAR *PUCHAR; typedef char *PSZ; #endif typedef signed char SCHAR; #if (ODBCVER < 0x0300) typedef SCHAR SQLSCHAR; #endif typedef __LONG32 SDWORD; typedef short int SWORD; typedef unsigned __LONG32 UDWORD; typedef unsigned short int UWORD; typedef signed __LONG32 SLONG; typedef signed short SSHORT; typedef double SDOUBLE; typedef double LDOUBLE; typedef float SFLOAT; typedef void *PTR; typedef void *HENV; typedef void *HDBC; typedef void *HSTMT; typedef signed short RETCODE; typedef HWND SQLHWND; #ifndef __SQLDATE #define __SQLDATE typedef struct tagDATE_STRUCT { SQLSMALLINT year; SQLUSMALLINT month; SQLUSMALLINT day; } DATE_STRUCT; #if (ODBCVER >= 0x0300) typedef DATE_STRUCT SQL_DATE_STRUCT; #endif typedef struct tagTIME_STRUCT { SQLUSMALLINT hour; SQLUSMALLINT minute; SQLUSMALLINT second; } TIME_STRUCT; #if (ODBCVER >= 0x0300) typedef TIME_STRUCT SQL_TIME_STRUCT; #endif 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 #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 #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 #endif #if (ODBCVER >= 0x0300) #define ODBCINT64 /* __MINGW_EXTENSION */ __int64 __MINGW_EXTENSION typedef ODBCINT64 SQLBIGINT; __MINGW_EXTENSION typedef unsigned ODBCINT64 SQLUBIGINT; #endif #if (ODBCVER >= 0x0300) #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 #if (ODBCVER >= 0x0350) #ifdef GUID_DEFINED typedef GUID SQLGUID; #else typedef struct tagSQLGUID { DWORD Data1; WORD Data2; WORD Data3; BYTE Data4[8 ]; } SQLGUID; #endif #endif typedef SQLULEN BOOKMARK; #ifdef _WCHAR_T_DEFINED typedef wchar_t SQLWCHAR; #else typedef unsigned short SQLWCHAR; #endif #if defined(UNICODE) typedef SQLWCHAR SQLTCHAR; #else typedef SQLCHAR SQLTCHAR; #endif #endif #ifdef __cplusplus } #endif #endif