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