move crt, ddk and GL includes
[reactos.git] / reactos / w32api / 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