#ifndef _SQLTYPES_H #define _SQLTYPES_H #if __GNUC__ >=3 #pragma GCC system_header #endif #ifdef __cplusplus extern "C" { #endif #define SQL_API __stdcall #ifndef RC_INVOKED #define __need_wchar_t #include typedef signed char SCHAR; typedef long SDWORD; typedef short SWORD; typedef ULONG UDWORD; typedef USHORT UWORD; typedef signed long SLONG; typedef signed short SSHORT; typedef double SDOUBLE; typedef double LDOUBLE; typedef float SFLOAT; typedef PVOID PTR; typedef PVOID HENV; typedef PVOID HDBC; typedef PVOID HSTMT; typedef short RETCODE; typedef UCHAR SQLCHAR; typedef SCHAR SQLSCHAR; typedef SDWORD SQLINTEGER; typedef SWORD SQLSMALLINT; #ifndef __WIN64 typedef UDWORD SQLUINTEGER; #endif typedef UWORD SQLUSMALLINT; typedef PVOID SQLPOINTER; #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; SQLUSMALLINT day; } DATE_STRUCT; typedef struct tagTIME_STRUCT { SQLUSMALLINT hour; SQLUSMALLINT minute; SQLUSMALLINT second; } TIME_STRUCT; typedef struct tagTIMESTAMP_STRUCT { SQLSMALLINT year; SQLUSMALLINT month; SQLUSMALLINT day; SQLUSMALLINT hour; SQLUSMALLINT minute; SQLUSMALLINT second; SQLUINTEGER fraction; } TIMESTAMP_STRUCT; #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 # warning _GUID_DEFINED is deprecated, use GUID_DEFINED instead #endif #if defined _GUID_DEFINED || defined 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 #endif