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