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