1 // Copyright © 2015, Peter Atashian
2 // Licensed under the MIT License <LICENSE.md>
3 pub type SQLCHAR = ::c_uchar;
4 pub type SQLSCHAR = ::c_schar;
5 pub type SQLDATE = ::c_uchar;
6 pub type SQLDECIMAL = ::c_uchar;
7 pub type SQLDOUBLE = ::c_double;
8 pub type SQLFLOAT = ::c_double;
9 pub type SQLINTEGER = ::c_long;
10 pub type SQLUINTEGER = ::c_ulong;
11 #[cfg(target_arch = "x86_64")]
12 pub type SQLLEN = ::INT64;
13 #[cfg(target_arch = "x86_64")]
14 pub type SQLULEN = ::UINT64;
15 #[cfg(target_arch = "x86_64")]
16 pub type SQLSETPOSIROW = ::UINT64;
17 #[cfg(target_arch = "x86")]
18 pub type SQLLEN = SQLINTEGER;
19 #[cfg(target_arch = "x86")]
20 pub type SQLULEN = SQLUINTEGER;
21 #[cfg(target_arch = "x86")]
22 pub type SQLSETPOSIROW = SQLUSMALLINT;
23 pub type SQLROWCOUNT = SQLULEN;
24 pub type SQLROWSETSIZE = SQLULEN;
25 pub type SQLTRANSID = SQLULEN;
26 pub type SQLROWOFFSET = SQLLEN;
27 pub type SQLNUMERIC = ::c_uchar;
28 pub type SQLPOINTER = *mut ::c_void;
29 pub type SQLREAL = ::c_float;
30 pub type SQLSMALLINT = ::c_short;
31 pub type SQLUSMALLINT = ::c_ushort;
32 pub type SQLTIME = ::c_uchar;
33 pub type SQLTIMESTAMP = ::c_uchar;
34 pub type SQLVARCHAR = ::c_uchar;
35 pub type SQLRETURN = SQLSMALLINT;
36 pub type SQLHANDLE = *mut ::c_void;
37 pub type SQLHENV = SQLHANDLE;
38 pub type SQLHDBC = SQLHANDLE;
39 pub type SQLHSTMT = SQLHANDLE;
40 pub type SQLHDESC = SQLHANDLE;
41 //pub type UCHAR = ::c_uchar;
42 pub type SCHAR = ::c_schar;
43 //pub type SQLSCHAR = SCHAR;
44 pub type SDWORD = ::c_long;
45 pub type SWORD = ::c_short;
46 pub type UDWORD = ::c_ulong;
47 //pub type UWORD = ::c_ushort;
48 //#[cfg(target_arch = "x86")]
49 //pub type SQLUINTEGER = ::UDWORD;
50 pub type SLONG = ::c_long;
51 pub type SSHORT = ::c_short;
52 //pub type ULONG = ::c_ulong;
53 //pub type USHORT = ::c_ushort;
54 pub type SDOUBLE = ::c_double;
55 pub type LDOUBLE = ::c_double;
56 pub type SFLOAT = ::c_float;
57 pub type PTR = *mut ::c_void;
58 pub type HENV = *mut ::c_void;
59 pub type HDBC = *mut ::c_void;
60 pub type HSTMT = *mut ::c_void;
61 pub type RETCODE = ::c_short;
62 pub type SQLHWND = ::HWND;
63 STRUCT!{struct DATE_STRUCT {
64     year: SQLSMALLINT,
65     month: SQLUSMALLINT,
66     day: SQLUSMALLINT,
67 }}
68 pub type SQL_DATE_STRUCT = DATE_STRUCT;
69 STRUCT!{struct TIME_STRUCT {
70     hour: SQLUSMALLINT,
71     minute: SQLUSMALLINT,
72     second: SQLUSMALLINT,
73 }}
74 pub type SQL_TIME_STRUCT = TIME_STRUCT;
75 STRUCT!{struct TIMESTAMP_STRUCT {
76     year: SQLSMALLINT,
77     month: SQLUSMALLINT,
78     day: SQLUSMALLINT,
79     hour: SQLUSMALLINT,
80     minute: SQLUSMALLINT,
81     second: SQLUSMALLINT,
82     fraction: SQLUINTEGER,
83 }}
84 pub type SQL_TIMESTAMP_STRUCT = TIMESTAMP_STRUCT;
85 ENUM!{enum SQLINTERVAL {
86     SQL_IS_YEAR = 1,
87     SQL_IS_MONTH = 2,
88     SQL_IS_DAY = 3,
89     SQL_IS_HOUR = 4,
90     SQL_IS_MINUTE = 5,
91     SQL_IS_SECOND = 6,
92     SQL_IS_YEAR_TO_MONTH = 7,
93     SQL_IS_DAY_TO_HOUR = 8,
94     SQL_IS_DAY_TO_MINUTE = 9,
95     SQL_IS_DAY_TO_SECOND = 10,
96     SQL_IS_HOUR_TO_MINUTE = 11,
97     SQL_IS_HOUR_TO_SECOND = 12,
98     SQL_IS_MINUTE_TO_SECOND = 13,
99 }}
100 STRUCT!{struct SQL_YEAR_MONTH_STRUCT {
101     year: SQLUINTEGER,
102     month: SQLUINTEGER,
103 }}
104 STRUCT!{struct SQL_DAY_SECOND_STRUCT {
105     day: SQLUINTEGER,
106     hour: SQLUINTEGER,
107     minute: SQLUINTEGER,
108     second: SQLUINTEGER,
109     fraction: SQLUINTEGER,
110 }}
111 STRUCT!{struct SQL_INTERVAL_STRUCT {
112     interval_type: SQLINTERVAL,
113     interval_sign: SQLSMALLINT,
114     intval: [u32; 5],
115 }}
116 UNION!{SQL_INTERVAL_STRUCT, intval, year_month, year_month_mut, SQL_YEAR_MONTH_STRUCT}
117 UNION!{SQL_INTERVAL_STRUCT, intval, day_second, day_second_mut, SQL_DAY_SECOND_STRUCT}
118 pub type ODBCINT64 = ::__int64;
119 pub type SQLBIGINT = ODBCINT64;
120 pub type SQLUBIGINT = ::__uint64;
121 pub const SQL_MAX_NUMERIC_LEN: usize = 16;
122 STRUCT!{struct SQL_NUMERIC_STRUCT {
123     precision: SQLCHAR,
124     scale: SQLSCHAR,
125     sign: SQLCHAR,
126     val: [SQLCHAR; SQL_MAX_NUMERIC_LEN],
127 }}
128 pub type SQLGUID = ::GUID;
129 pub type BOOKMARK = SQLULEN;
130 pub type SQLWCHAR = ::wchar_t;
131