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