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