1/** 2 * This file has no copyright assigned and is placed in the Public Domain. 3 * This file is part of the mingw-w64 runtime package. 4 * No warranty is given; refer to the file DISCLAIMER.PD within this package. 5 */ 6#ifndef __SQLTYPES 7#define __SQLTYPES 8 9#ifndef ODBCVER 10#define ODBCVER 0x0351 11#endif 12 13#ifdef __cplusplus 14extern "C" { 15#endif 16 17#ifndef EXPORT 18#define EXPORT 19#endif 20 21#if defined(_ARM_) 22#define SQL_API 23#else 24#define SQL_API __stdcall 25#endif 26 27#ifndef RC_INVOKED 28 29 typedef unsigned char SQLCHAR; 30#if (ODBCVER >= 0x0300) 31 typedef signed char SQLSCHAR; 32 typedef unsigned char SQLDATE; 33 typedef unsigned char SQLDECIMAL; 34 typedef double SQLDOUBLE; 35 typedef double SQLFLOAT; 36#endif 37 typedef __LONG32 SQLINTEGER; 38 typedef unsigned __LONG32 SQLUINTEGER; 39 40#ifdef _WIN64 41 typedef INT64 SQLLEN; 42 typedef UINT64 SQLULEN; 43 typedef UINT64 SQLSETPOSIROW; 44#else 45#define SQLLEN SQLINTEGER 46#define SQLULEN SQLUINTEGER 47#define SQLSETPOSIROW SQLUSMALLINT 48#endif 49 50 typedef SQLULEN SQLROWCOUNT; 51 typedef SQLULEN SQLROWSETSIZE; 52 typedef SQLULEN SQLTRANSID; 53 typedef SQLLEN SQLROWOFFSET; 54 55#if (ODBCVER >= 0x0300) 56 typedef unsigned char SQLNUMERIC; 57#endif 58 typedef void *SQLPOINTER; 59#if (ODBCVER >= 0x0300) 60 typedef float SQLREAL; 61#endif 62 typedef short SQLSMALLINT; 63 typedef unsigned short SQLUSMALLINT; 64#if (ODBCVER >= 0x0300) 65 typedef unsigned char SQLTIME; 66 typedef unsigned char SQLTIMESTAMP; 67 typedef unsigned char SQLVARCHAR; 68#endif 69 70 typedef SQLSMALLINT SQLRETURN; 71 72#if (ODBCVER >= 0x0300) 73 typedef void *SQLHANDLE; 74 typedef SQLHANDLE SQLHENV; 75 typedef SQLHANDLE SQLHDBC; 76 typedef SQLHANDLE SQLHSTMT; 77 typedef SQLHANDLE SQLHDESC; 78#else 79 typedef void *SQLHENV; 80 typedef void *SQLHDBC; 81 typedef void *SQLHSTMT; 82#endif 83 84#ifndef BASETYPES 85#define BASETYPES 86 typedef unsigned __LONG32 ULONG; 87 typedef ULONG *PULONG; 88 typedef unsigned short USHORT; 89 typedef USHORT *PUSHORT; 90 typedef unsigned char UCHAR; 91 typedef UCHAR *PUCHAR; 92 typedef char *PSZ; 93#endif 94 95 typedef signed char SCHAR; 96#if (ODBCVER < 0x0300) 97 typedef SCHAR SQLSCHAR; 98#endif 99 typedef __LONG32 SDWORD; 100 typedef short int SWORD; 101 typedef unsigned __LONG32 UDWORD; 102 typedef unsigned short int UWORD; 103 104 typedef signed __LONG32 SLONG; 105 typedef signed short SSHORT; 106 typedef double SDOUBLE; 107 typedef double LDOUBLE; 108 typedef float SFLOAT; 109 typedef void *PTR; 110 typedef void *HENV; 111 typedef void *HDBC; 112 typedef void *HSTMT; 113 typedef signed short RETCODE; 114 typedef HWND SQLHWND; 115 116#ifndef __SQLDATE 117#define __SQLDATE 118 119 typedef struct tagDATE_STRUCT { 120 SQLSMALLINT year; 121 SQLUSMALLINT month; 122 SQLUSMALLINT day; 123 } DATE_STRUCT; 124 125#if (ODBCVER >= 0x0300) 126 typedef DATE_STRUCT SQL_DATE_STRUCT; 127#endif 128 129 typedef struct tagTIME_STRUCT { 130 SQLUSMALLINT hour; 131 SQLUSMALLINT minute; 132 SQLUSMALLINT second; 133 } TIME_STRUCT; 134 135#if (ODBCVER >= 0x0300) 136 typedef TIME_STRUCT SQL_TIME_STRUCT; 137#endif 138 139 typedef struct tagTIMESTAMP_STRUCT { 140 SQLSMALLINT year; 141 SQLUSMALLINT month; 142 SQLUSMALLINT day; 143 SQLUSMALLINT hour; 144 SQLUSMALLINT minute; 145 SQLUSMALLINT second; 146 SQLUINTEGER fraction; 147 } TIMESTAMP_STRUCT; 148 149#if (ODBCVER >= 0x0300) 150 typedef TIMESTAMP_STRUCT SQL_TIMESTAMP_STRUCT; 151#endif 152 153#if (ODBCVER >= 0x0300) 154 typedef enum { 155 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, 156 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, 157 SQL_IS_MINUTE_TO_SECOND = 13 158 } SQLINTERVAL; 159#endif 160 161#if (ODBCVER >= 0x0300) 162 typedef struct tagSQL_YEAR_MONTH { 163 SQLUINTEGER year; 164 SQLUINTEGER month; 165 } SQL_YEAR_MONTH_STRUCT; 166 167 typedef struct tagSQL_DAY_SECOND { 168 SQLUINTEGER day; 169 SQLUINTEGER hour; 170 SQLUINTEGER minute; 171 SQLUINTEGER second; 172 SQLUINTEGER fraction; 173 } SQL_DAY_SECOND_STRUCT; 174 175 typedef struct tagSQL_INTERVAL_STRUCT { 176 SQLINTERVAL interval_type; 177 SQLSMALLINT interval_sign; 178 union { 179 SQL_YEAR_MONTH_STRUCT year_month; 180 SQL_DAY_SECOND_STRUCT day_second; 181 } intval; 182 } SQL_INTERVAL_STRUCT; 183#endif 184#endif 185 186#if (ODBCVER >= 0x0300) 187#define ODBCINT64 /* __MINGW_EXTENSION */ __int64 188 __MINGW_EXTENSION typedef ODBCINT64 SQLBIGINT; 189 __MINGW_EXTENSION typedef unsigned ODBCINT64 SQLUBIGINT; 190#endif 191 192#if (ODBCVER >= 0x0300) 193#define SQL_MAX_NUMERIC_LEN 16 194 typedef struct tagSQL_NUMERIC_STRUCT { 195 SQLCHAR precision; 196 SQLSCHAR scale; 197 SQLCHAR sign; 198 SQLCHAR val[SQL_MAX_NUMERIC_LEN]; 199 } SQL_NUMERIC_STRUCT; 200#endif 201 202#if (ODBCVER >= 0x0350) 203#ifdef GUID_DEFINED 204 typedef GUID SQLGUID; 205#else 206 207 typedef struct tagSQLGUID { 208 DWORD Data1; 209 WORD Data2; 210 WORD Data3; 211 BYTE Data4[8 ]; 212 } SQLGUID; 213#endif 214#endif 215 216 typedef SQLULEN BOOKMARK; 217 218#ifdef _WCHAR_T_DEFINED 219 typedef wchar_t SQLWCHAR; 220#else 221 typedef unsigned short SQLWCHAR; 222#endif 223 224#if defined(UNICODE) 225 typedef SQLWCHAR SQLTCHAR; 226#else 227 typedef SQLCHAR SQLTCHAR; 228#endif 229#endif 230 231#ifdef __cplusplus 232} 233#endif 234#endif 235