OSDN Git Service

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