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