Reactos
1#ifndef __SQLTYPES
2#define __SQLTYPES
3
4#ifdef __cplusplus
5extern "C" {
6#endif
7
8#define SQL_API __stdcall
9
10#ifndef RC_INVOKED
11#define __need_wchar_t
12#include <stddef.h>
13
14typedef signed char SCHAR;
15typedef long SDWORD;
16typedef short SWORD;
17typedef ULONG UDWORD;
18typedef USHORT UWORD;
19typedef signed long SLONG;
20typedef signed short SSHORT;
21typedef double SDOUBLE;
22typedef double LDOUBLE;
23typedef float SFLOAT;
24typedef PVOID PTR;
25typedef PVOID HENV;
26typedef PVOID HDBC;
27typedef PVOID HSTMT;
28typedef short RETCODE;
29typedef UCHAR SQLCHAR;
30typedef SDWORD SQLINTEGER;
31typedef SWORD SQLSMALLINT;
32typedef UDWORD SQLUINTEGER;
33typedef UWORD SQLUSMALLINT;
34typedef PVOID SQLPOINTER;
35typedef void* SQLHENV;
36typedef void* SQLHDBC;
37typedef void* SQLHSTMT;
38typedef SQLSMALLINT SQLRETURN;
39typedef HWND SQLHWND;
40
41#ifdef _WIN64
42typedef INT64 SQLLEN;
43typedef UINT64 SQLULEN;
44typedef UINT64 SQLSETPOSIROW;
45#else
46#define SQLLEN SQLINTEGER
47#define SQLULEN SQLUINTEGER
48#define SQLSETPOSIROW SQLUSMALLINT
49#endif /* _WIN64 */
50
51typedef SQLULEN BOOKMARK;
52typedef SQLLEN SQLROWOFFSET;
53typedef SQLULEN SQLROWCOUNT;
54typedef SQLULEN SQLTRANSID;
55
56typedef wchar_t SQLWCHAR;
57#ifdef UNICODE
58typedef SQLWCHAR SQLTCHAR;
59#else
60typedef SQLCHAR SQLTCHAR;
61#endif /* UNICODE */
62
63typedef struct tagDATE_STRUCT {
64 SQLSMALLINT year;
65 SQLUSMALLINT month;
66 SQLUSMALLINT day;
67} DATE_STRUCT;
68typedef struct tagTIME_STRUCT {
69 SQLUSMALLINT hour;
70 SQLUSMALLINT minute;
71 SQLUSMALLINT second;
72} TIME_STRUCT;
73typedef 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)
84typedef SCHAR SQLSCHAR;
85typedef void* SQLHANDLE;
86typedef void* SQLHDESC;
87typedef unsigned char SQLDATE;
88typedef unsigned char SQLDECIMAL;
89typedef double SQLDOUBLE;
90typedef double SQLFLOAT;
91typedef unsigned char SQLNUMERIC;
92typedef float SQLREAL;
93typedef unsigned char SQLTIME;
94typedef unsigned char SQLTIMESTAMP;
95typedef unsigned char SQLVARCHAR;
96#define ODBCINT64 __int64
97typedef __int64 SQLBIGINT;
98typedef unsigned __int64 SQLUBIGINT;
99typedef DATE_STRUCT SQL_DATE_STRUCT;
100typedef TIME_STRUCT SQL_TIME_STRUCT;
101typedef TIMESTAMP_STRUCT SQL_TIMESTAMP_STRUCT;
102typedef 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;
108typedef struct tagSQL_YEAR_MONTH {
109 SQLUINTEGER year;
110 SQLUINTEGER month;
111} SQL_YEAR_MONTH_STRUCT;
112typedef struct tagSQL_DAY_SECOND {
113 SQLUINTEGER day;
114 SQLUINTEGER hour;
115 SQLUINTEGER minute;
116 SQLUINTEGER second;
117 SQLUINTEGER fraction;
118} SQL_DAY_SECOND_STRUCT;
119typedef 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
128typedef 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
143typedef GUID SQLGUID;
144#else
145typedef 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 */