1 /**
2 * Windows API header module
3 *
4 * Translated from MinGW Windows headers
5 *
6 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
7 * Source: $(DRUNTIMESRC src/core/sys/windows/_sqltypes.d)
8 */
9 module core.sys.windows.sqltypes;
version(Windows)10 version (Windows):
11 @system:
12
13 version (ANSI) {} else version = Unicode;
14
15 /* Conversion notes:
16 It's assumed that ODBC >= 0x0300.
17 */
18
19 import core.sys.windows.windef;
20 import core.sys.windows.basetyps; // for GUID
21
22 alias byte SCHAR, SQLSCHAR;
23 alias int SDWORD, SLONG, SQLINTEGER;
24 alias short SWORD, SSHORT, RETCODE, SQLSMALLINT;
25 alias ULONG UDWORD;
26 alias USHORT UWORD, SQLUSMALLINT;
27 alias double SDOUBLE, LDOUBLE;
28 alias float SFLOAT;
29 alias PVOID PTR, HENV, HDBC, HSTMT, SQLPOINTER;
30 alias UCHAR SQLCHAR;
31 // #ifndef _WIN64
32 alias UDWORD SQLUINTEGER;
33 // #endif
34
35 //static if (ODBCVER >= 0x0300) {
36 alias TypeDef!(HANDLE) SQLHANDLE;
37 alias SQLHANDLE SQLHENV, SQLHDBC, SQLHSTMT, SQLHDESC;
38 /*
39 } else {
40 alias void* SQLHENV;
41 alias void* SQLHDBC;
42 alias void* SQLHSTMT;
43 }
44 */
45 alias SQLSMALLINT SQLRETURN;
46 alias HWND SQLHWND;
47 alias ULONG BOOKMARK;
48
49 alias SQLINTEGER SQLLEN, SQLROWOFFSET;
50 alias SQLUINTEGER SQLROWCOUNT, SQLULEN;
51 alias DWORD SQLTRANSID;
52 alias SQLUSMALLINT SQLSETPOSIROW;
53 alias wchar SQLWCHAR;
54
version(Unicode)55 version (Unicode) {
56 alias SQLWCHAR SQLTCHAR;
57 } else {
58 alias SQLCHAR SQLTCHAR;
59 }
60 //static if (ODBCVER >= 0x0300) {
61 alias ubyte SQLDATE, SQLDECIMAL;
62 alias double SQLDOUBLE, SQLFLOAT;
63 alias ubyte SQLNUMERIC;
64 alias float SQLREAL;
65 alias ubyte SQLTIME, SQLTIMESTAMP, SQLVARCHAR;
66 alias long ODBCINT64, SQLBIGINT;
67 alias ulong SQLUBIGINT;
68 //}
69
70 struct DATE_STRUCT {
71 SQLSMALLINT year;
72 SQLUSMALLINT month;
73 SQLUSMALLINT day;
74 }
75
76 struct TIME_STRUCT {
77 SQLUSMALLINT hour;
78 SQLUSMALLINT minute;
79 SQLUSMALLINT second;
80 }
81
82 struct TIMESTAMP_STRUCT {
83 SQLSMALLINT year;
84 SQLUSMALLINT month;
85 SQLUSMALLINT day;
86 SQLUSMALLINT hour;
87 SQLUSMALLINT minute;
88 SQLUSMALLINT second;
89 SQLUINTEGER fraction;
90 }
91
92 //static if (ODBCVER >= 0x0300) {
93 alias DATE_STRUCT SQL_DATE_STRUCT;
94 alias TIME_STRUCT SQL_TIME_STRUCT;
95 alias TIMESTAMP_STRUCT SQL_TIMESTAMP_STRUCT;
96
97 enum SQLINTERVAL {
98 SQL_IS_YEAR = 1,
99 SQL_IS_MONTH,
100 SQL_IS_DAY,
101 SQL_IS_HOUR,
102 SQL_IS_MINUTE,
103 SQL_IS_SECOND,
104 SQL_IS_YEAR_TO_MONTH,
105 SQL_IS_DAY_TO_HOUR,
106 SQL_IS_DAY_TO_MINUTE,
107 SQL_IS_DAY_TO_SECOND,
108 SQL_IS_HOUR_TO_MINUTE,
109 SQL_IS_HOUR_TO_SECOND,
110 SQL_IS_MINUTE_TO_SECOND
111 }
112
113 struct SQL_YEAR_MONTH_STRUCT {
114 SQLUINTEGER year;
115 SQLUINTEGER month;
116 }
117
118 struct SQL_DAY_SECOND_STRUCT {
119 SQLUINTEGER day;
120 SQLUINTEGER hour;
121 SQLUINTEGER minute;
122 SQLUINTEGER second;
123 SQLUINTEGER fraction;
124 }
125
126 struct SQL_INTERVAL_STRUCT {
127 SQLINTERVAL interval_type;
128 SQLSMALLINT interval_sign;
129 union _intval {
130 SQL_YEAR_MONTH_STRUCT year_month;
131 SQL_DAY_SECOND_STRUCT day_second;
132 }
133 _intval intval;
134 }
135
136 enum SQL_MAX_NUMERIC_LEN = 16;
137
138 struct SQL_NUMERIC_STRUCT {
139 SQLCHAR precision;
140 SQLSCHAR scale;
141 SQLCHAR sign;
142 SQLCHAR[SQL_MAX_NUMERIC_LEN] val;
143 }
144 // } ODBCVER >= 0x0300
145 alias GUID SQLGUID;
146