Artifact e13dc9b878fc2ab3cc88c0a8fc4c332225955b9b:
- File
src/win32/sqltypes.d
-
2015-05-05 06:49:05
- part of checkin
[9b639cf2d6]
on branch trunk
- Working version for update to 2.067.
The problem was __gshared. Replacing it with TLS fixed the issue. Remaining problem is that "hack.d"'s CloseHandle hack is not working anymore.
(user: kinaba) [annotate]
-
2015-05-05 06:49:05
- part of checkin
[9b639cf2d6]
on branch trunk
- Working version for update to 2.067.
0000: 2f 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a /***************
0010: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
0020: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
0030: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
0040: 2a 2a 2a 2a 2a 2a 2a 2a 5c 0d 0a 2a 20 20 20 20 ********\..*
0050: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0060: 20 20 20 20 20 20 20 20 20 20 20 73 71 6c 74 79 sqlty
0070: 70 65 73 2e 64 20 20 20 20 20 20 20 20 20 20 20 pes.d
0080: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0090: 20 20 20 2a 0d 0a 2a 20 20 20 20 20 20 20 20 20 *..*
00a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 0d *.
00e0: 0a 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .*
00f0: 20 20 20 20 20 20 20 20 20 57 69 6e 64 6f 77 73 Windows
0100: 20 41 50 49 20 68 65 61 64 65 72 20 6d 6f 64 75 API header modu
0110: 6c 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20 le
0120: 20 20 20 20 20 20 20 20 20 2a 0d 0a 2a 20 20 20 *..*
0130: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0140: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0150: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0160: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0170: 20 20 20 20 2a 0d 0a 2a 20 20 20 20 20 20 20 20 *..*
0180: 20 20 20 20 20 20 20 20 20 54 72 61 6e 73 6c 61 Transla
0190: 74 65 64 20 66 72 6f 6d 20 4d 69 6e 47 57 20 57 ted from MinGW W
01a0: 69 6e 64 6f 77 73 20 68 65 61 64 65 72 73 20 20 indows headers
01b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a *
01c0: 0d 0a 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 ..*
01d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0200: 20 20 20 20 20 20 20 20 20 20 2a 0d 0a 2a 20 20 *..*
0210: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0220: 20 20 20 20 20 50 6c 61 63 65 64 20 69 6e 74 6f Placed into
0230: 20 70 75 62 6c 69 63 20 64 6f 6d 61 69 6e 20 20 public domain
0240: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0250: 20 20 20 20 20 2a 0d 0a 5c 2a 2a 2a 2a 2a 2a 2a *..\*******
0260: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
0270: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
0280: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
0290: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
02a0: 2f 0d 0a 6d 6f 64 75 6c 65 20 77 69 6e 33 32 2e /..module win32.
02b0: 73 71 6c 74 79 70 65 73 3b 0d 0a 0d 0a 2f 2a 20 sqltypes;..../*
02c0: 43 6f 6e 76 65 72 73 69 6f 6e 20 6e 6f 74 65 73 Conversion notes
02d0: 3a 0d 0a 20 20 49 74 27 73 20 61 73 73 75 6d 65 :.. It's assume
02e0: 64 20 74 68 61 74 20 4f 44 42 43 20 3e 3d 20 30 d that ODBC >= 0
02f0: 78 30 33 30 30 2e 0d 0a 2a 2f 0d 0a 0d 0a 70 72 x0300...*/....pr
0300: 69 76 61 74 65 20 69 6d 70 6f 72 74 20 77 69 6e ivate import win
0310: 33 32 2e 77 69 6e 64 65 66 3b 0d 0a 70 72 69 76 32.windef;..priv
0320: 61 74 65 20 69 6d 70 6f 72 74 20 77 69 6e 33 32 ate import win32
0330: 2e 62 61 73 65 74 79 70 73 3b 20 2f 2f 20 66 6f .basetyps; // fo
0340: 72 20 47 55 49 44 0d 0a 0d 0a 61 6c 69 61 73 20 r GUID....alias
0350: 62 79 74 65 20 53 43 48 41 52 2c 20 53 51 4c 53 byte SCHAR, SQLS
0360: 43 48 41 52 3b 0d 0a 61 6c 69 61 73 20 69 6e 74 CHAR;..alias int
0370: 20 53 44 57 4f 52 44 2c 20 53 4c 4f 4e 47 2c 20 SDWORD, SLONG,
0380: 53 51 4c 49 4e 54 45 47 45 52 3b 0d 0a 61 6c 69 SQLINTEGER;..ali
0390: 61 73 20 73 68 6f 72 74 20 53 57 4f 52 44 2c 20 as short SWORD,
03a0: 53 53 48 4f 52 54 2c 20 52 45 54 43 4f 44 45 2c SSHORT, RETCODE,
03b0: 20 53 51 4c 53 4d 41 4c 4c 49 4e 54 3b 0d 0a 61 SQLSMALLINT;..a
03c0: 6c 69 61 73 20 55 4c 4f 4e 47 20 55 44 57 4f 52 lias ULONG UDWOR
03d0: 44 3b 0d 0a 61 6c 69 61 73 20 55 53 48 4f 52 54 D;..alias USHORT
03e0: 20 55 57 4f 52 44 2c 20 53 51 4c 55 53 4d 41 4c UWORD, SQLUSMAL
03f0: 4c 49 4e 54 3b 0d 0a 61 6c 69 61 73 20 64 6f 75 LINT;..alias dou
0400: 62 6c 65 20 53 44 4f 55 42 4c 45 2c 20 4c 44 4f ble SDOUBLE, LDO
0410: 55 42 4c 45 3b 0d 0a 61 6c 69 61 73 20 66 6c 6f UBLE;..alias flo
0420: 61 74 20 53 46 4c 4f 41 54 3b 0d 0a 61 6c 69 61 at SFLOAT;..alia
0430: 73 20 50 56 4f 49 44 20 50 54 52 2c 20 48 45 4e s PVOID PTR, HEN
0440: 56 2c 20 48 44 42 43 2c 20 48 53 54 4d 54 2c 20 V, HDBC, HSTMT,
0450: 53 51 4c 50 4f 49 4e 54 45 52 3b 0d 0a 61 6c 69 SQLPOINTER;..ali
0460: 61 73 20 55 43 48 41 52 20 53 51 4c 43 48 41 52 as UCHAR SQLCHAR
0470: 3b 0d 0a 2f 2f 20 23 69 66 6e 64 65 66 20 5f 57 ;..// #ifndef _W
0480: 49 4e 36 34 0d 0a 61 6c 69 61 73 20 55 44 57 4f IN64..alias UDWO
0490: 52 44 20 53 51 4c 55 49 4e 54 45 47 45 52 3b 0d RD SQLUINTEGER;.
04a0: 0a 2f 2f 20 23 65 6e 64 69 66 0d 0a 0d 0a 2f 2f .// #endif....//
04b0: 73 74 61 74 69 63 20 69 66 20 28 4f 44 42 43 56 static if (ODBCV
04c0: 45 52 20 3e 3d 20 30 78 30 33 30 30 29 20 7b 0d ER >= 0x0300) {.
04d0: 0a 61 6c 69 61 73 20 54 79 70 65 44 65 66 21 28 .alias TypeDef!(
04e0: 48 41 4e 44 4c 45 29 20 53 51 4c 48 41 4e 44 4c HANDLE) SQLHANDL
04f0: 45 3b 0d 0a 61 6c 69 61 73 20 53 51 4c 48 41 4e E;..alias SQLHAN
0500: 44 4c 45 20 53 51 4c 48 45 4e 56 2c 20 53 51 4c DLE SQLHENV, SQL
0510: 48 44 42 43 2c 20 53 51 4c 48 53 54 4d 54 2c 20 HDBC, SQLHSTMT,
0520: 53 51 4c 48 44 45 53 43 3b 0d 0a 2f 2a 0d 0a 7d SQLHDESC;../*..}
0530: 20 65 6c 73 65 20 7b 0d 0a 61 6c 69 61 73 20 76 else {..alias v
0540: 6f 69 64 2a 20 53 51 4c 48 45 4e 56 3b 0d 0a 61 oid* SQLHENV;..a
0550: 6c 69 61 73 20 76 6f 69 64 2a 20 53 51 4c 48 44 lias void* SQLHD
0560: 42 43 3b 0d 0a 61 6c 69 61 73 20 76 6f 69 64 2a BC;..alias void*
0570: 20 53 51 4c 48 53 54 4d 54 3b 0d 0a 7d 0d 0a 2a SQLHSTMT;..}..*
0580: 2f 0d 0a 61 6c 69 61 73 20 53 51 4c 53 4d 41 4c /..alias SQLSMAL
0590: 4c 49 4e 54 20 53 51 4c 52 45 54 55 52 4e 3b 0d LINT SQLRETURN;.
05a0: 0a 61 6c 69 61 73 20 48 57 4e 44 20 53 51 4c 48 .alias HWND SQLH
05b0: 57 4e 44 3b 0d 0a 61 6c 69 61 73 20 55 4c 4f 4e WND;..alias ULON
05c0: 47 20 42 4f 4f 4b 4d 41 52 4b 3b 0d 0a 0d 0a 61 G BOOKMARK;....a
05d0: 6c 69 61 73 20 53 51 4c 49 4e 54 45 47 45 52 20 lias SQLINTEGER
05e0: 53 51 4c 4c 45 4e 2c 20 53 51 4c 52 4f 57 4f 46 SQLLEN, SQLROWOF
05f0: 46 53 45 54 3b 0d 0a 61 6c 69 61 73 20 53 51 4c FSET;..alias SQL
0600: 55 49 4e 54 45 47 45 52 20 53 51 4c 52 4f 57 43 UINTEGER SQLROWC
0610: 4f 55 4e 54 2c 20 53 51 4c 55 4c 45 4e 3b 0d 0a OUNT, SQLULEN;..
0620: 61 6c 69 61 73 20 44 57 4f 52 44 20 53 51 4c 54 alias DWORD SQLT
0630: 52 41 4e 53 49 44 3b 0d 0a 61 6c 69 61 73 20 53 RANSID;..alias S
0640: 51 4c 55 53 4d 41 4c 4c 49 4e 54 20 53 51 4c 53 QLUSMALLINT SQLS
0650: 45 54 50 4f 53 49 52 4f 57 3b 0d 0a 61 6c 69 61 ETPOSIROW;..alia
0660: 73 20 77 63 68 61 72 20 53 51 4c 57 43 48 41 52 s wchar SQLWCHAR
0670: 3b 0d 0a 0d 0a 76 65 72 73 69 6f 6e 28 55 6e 69 ;....version(Uni
0680: 63 6f 64 65 29 20 7b 0d 0a 09 61 6c 69 61 73 20 code) {...alias
0690: 53 51 4c 57 43 48 41 52 20 53 51 4c 54 43 48 41 SQLWCHAR SQLTCHA
06a0: 52 3b 0d 0a 7d 20 65 6c 73 65 20 7b 0d 0a 09 61 R;..} else {...a
06b0: 6c 69 61 73 20 53 51 4c 43 48 41 52 20 20 53 51 lias SQLCHAR SQ
06c0: 4c 54 43 48 41 52 3b 0d 0a 7d 0d 0a 2f 2f 73 74 LTCHAR;..}..//st
06d0: 61 74 69 63 20 69 66 20 28 4f 44 42 43 56 45 52 atic if (ODBCVER
06e0: 20 3e 3d 20 30 78 30 33 30 30 29 20 7b 0d 0a 61 >= 0x0300) {..a
06f0: 6c 69 61 73 20 75 62 79 74 65 20 20 53 51 4c 44 lias ubyte SQLD
0700: 41 54 45 2c 20 53 51 4c 44 45 43 49 4d 41 4c 3b ATE, SQLDECIMAL;
0710: 0d 0a 61 6c 69 61 73 20 64 6f 75 62 6c 65 20 53 ..alias double S
0720: 51 4c 44 4f 55 42 4c 45 2c 20 53 51 4c 46 4c 4f QLDOUBLE, SQLFLO
0730: 41 54 3b 0d 0a 61 6c 69 61 73 20 75 62 79 74 65 AT;..alias ubyte
0740: 20 20 53 51 4c 4e 55 4d 45 52 49 43 3b 0d 0a 61 SQLNUMERIC;..a
0750: 6c 69 61 73 20 66 6c 6f 61 74 20 20 53 51 4c 52 lias float SQLR
0760: 45 41 4c 3b 0d 0a 61 6c 69 61 73 20 75 62 79 74 EAL;..alias ubyt
0770: 65 20 20 53 51 4c 54 49 4d 45 2c 20 53 51 4c 54 e SQLTIME, SQLT
0780: 49 4d 45 53 54 41 4d 50 2c 20 53 51 4c 56 41 52 IMESTAMP, SQLVAR
0790: 43 48 41 52 3b 0d 0a 61 6c 69 61 73 20 6c 6f 6e CHAR;..alias lon
07a0: 67 20 20 20 4f 44 42 43 49 4e 54 36 34 2c 20 53 g ODBCINT64, S
07b0: 51 4c 42 49 47 49 4e 54 3b 0d 0a 61 6c 69 61 73 QLBIGINT;..alias
07c0: 20 75 6c 6f 6e 67 20 20 53 51 4c 55 42 49 47 49 ulong SQLUBIGI
07d0: 4e 54 3b 0d 0a 2f 2f 7d 0d 0a 0d 0a 73 74 72 75 NT;..//}....stru
07e0: 63 74 20 44 41 54 45 5f 53 54 52 55 43 54 20 7b ct DATE_STRUCT {
07f0: 0d 0a 09 53 51 4c 53 4d 41 4c 4c 49 4e 54 20 79 ...SQLSMALLINT y
0800: 65 61 72 3b 0d 0a 09 53 51 4c 55 53 4d 41 4c 4c ear;...SQLUSMALL
0810: 49 4e 54 20 6d 6f 6e 74 68 3b 0d 0a 09 53 51 4c INT month;...SQL
0820: 55 53 4d 41 4c 4c 49 4e 54 20 64 61 79 3b 0d 0a USMALLINT day;..
0830: 7d 0d 0a 0d 0a 73 74 72 75 63 74 20 54 49 4d 45 }....struct TIME
0840: 5f 53 54 52 55 43 54 20 7b 0d 0a 09 53 51 4c 55 _STRUCT {...SQLU
0850: 53 4d 41 4c 4c 49 4e 54 20 68 6f 75 72 3b 0d 0a SMALLINT hour;..
0860: 09 53 51 4c 55 53 4d 41 4c 4c 49 4e 54 20 6d 69 .SQLUSMALLINT mi
0870: 6e 75 74 65 3b 0d 0a 09 53 51 4c 55 53 4d 41 4c nute;...SQLUSMAL
0880: 4c 49 4e 54 20 73 65 63 6f 6e 64 3b 0d 0a 7d 0d LINT second;..}.
0890: 0a 0d 0a 73 74 72 75 63 74 20 54 49 4d 45 53 54 ...struct TIMEST
08a0: 41 4d 50 5f 53 54 52 55 43 54 20 7b 0d 0a 09 53 AMP_STRUCT {...S
08b0: 51 4c 53 4d 41 4c 4c 49 4e 54 20 79 65 61 72 3b QLSMALLINT year;
08c0: 0d 0a 09 53 51 4c 55 53 4d 41 4c 4c 49 4e 54 20 ...SQLUSMALLINT
08d0: 6d 6f 6e 74 68 3b 0d 0a 09 53 51 4c 55 53 4d 41 month;...SQLUSMA
08e0: 4c 4c 49 4e 54 20 64 61 79 3b 0d 0a 09 53 51 4c LLINT day;...SQL
08f0: 55 53 4d 41 4c 4c 49 4e 54 20 68 6f 75 72 3b 0d USMALLINT hour;.
0900: 0a 09 53 51 4c 55 53 4d 41 4c 4c 49 4e 54 20 6d ..SQLUSMALLINT m
0910: 69 6e 75 74 65 3b 0d 0a 09 53 51 4c 55 53 4d 41 inute;...SQLUSMA
0920: 4c 4c 49 4e 54 20 73 65 63 6f 6e 64 3b 0d 0a 09 LLINT second;...
0930: 53 51 4c 55 49 4e 54 45 47 45 52 20 66 72 61 63 SQLUINTEGER frac
0940: 74 69 6f 6e 3b 0d 0a 7d 0d 0a 0d 0a 2f 2f 73 74 tion;..}....//st
0950: 61 74 69 63 20 69 66 20 28 4f 44 42 43 56 45 52 atic if (ODBCVER
0960: 20 3e 3d 20 30 78 30 33 30 30 29 20 7b 0d 0a 61 >= 0x0300) {..a
0970: 6c 69 61 73 20 44 41 54 45 5f 53 54 52 55 43 54 lias DATE_STRUCT
0980: 20 53 51 4c 5f 44 41 54 45 5f 53 54 52 55 43 54 SQL_DATE_STRUCT
0990: 3b 0d 0a 61 6c 69 61 73 20 54 49 4d 45 5f 53 54 ;..alias TIME_ST
09a0: 52 55 43 54 20 53 51 4c 5f 54 49 4d 45 5f 53 54 RUCT SQL_TIME_ST
09b0: 52 55 43 54 3b 0d 0a 61 6c 69 61 73 20 54 49 4d RUCT;..alias TIM
09c0: 45 53 54 41 4d 50 5f 53 54 52 55 43 54 20 53 51 ESTAMP_STRUCT SQ
09d0: 4c 5f 54 49 4d 45 53 54 41 4d 50 5f 53 54 52 55 L_TIMESTAMP_STRU
09e0: 43 54 3b 0d 0a 0d 0a 65 6e 75 6d 20 53 51 4c 49 CT;....enum SQLI
09f0: 4e 54 45 52 56 41 4c 20 7b 0d 0a 09 53 51 4c 5f NTERVAL {...SQL_
0a00: 49 53 5f 59 45 41 52 20 3d 20 31 2c 0d 0a 09 53 IS_YEAR = 1,...S
0a10: 51 4c 5f 49 53 5f 4d 4f 4e 54 48 2c 0d 0a 09 53 QL_IS_MONTH,...S
0a20: 51 4c 5f 49 53 5f 44 41 59 2c 0d 0a 09 53 51 4c QL_IS_DAY,...SQL
0a30: 5f 49 53 5f 48 4f 55 52 2c 0d 0a 09 53 51 4c 5f _IS_HOUR,...SQL_
0a40: 49 53 5f 4d 49 4e 55 54 45 2c 0d 0a 09 53 51 4c IS_MINUTE,...SQL
0a50: 5f 49 53 5f 53 45 43 4f 4e 44 2c 0d 0a 09 53 51 _IS_SECOND,...SQ
0a60: 4c 5f 49 53 5f 59 45 41 52 5f 54 4f 5f 4d 4f 4e L_IS_YEAR_TO_MON
0a70: 54 48 2c 0d 0a 09 53 51 4c 5f 49 53 5f 44 41 59 TH,...SQL_IS_DAY
0a80: 5f 54 4f 5f 48 4f 55 52 2c 0d 0a 09 53 51 4c 5f _TO_HOUR,...SQL_
0a90: 49 53 5f 44 41 59 5f 54 4f 5f 4d 49 4e 55 54 45 IS_DAY_TO_MINUTE
0aa0: 2c 0d 0a 09 53 51 4c 5f 49 53 5f 44 41 59 5f 54 ,...SQL_IS_DAY_T
0ab0: 4f 5f 53 45 43 4f 4e 44 2c 0d 0a 09 53 51 4c 5f O_SECOND,...SQL_
0ac0: 49 53 5f 48 4f 55 52 5f 54 4f 5f 4d 49 4e 55 54 IS_HOUR_TO_MINUT
0ad0: 45 2c 0d 0a 09 53 51 4c 5f 49 53 5f 48 4f 55 52 E,...SQL_IS_HOUR
0ae0: 5f 54 4f 5f 53 45 43 4f 4e 44 2c 0d 0a 09 53 51 _TO_SECOND,...SQ
0af0: 4c 5f 49 53 5f 4d 49 4e 55 54 45 5f 54 4f 5f 53 L_IS_MINUTE_TO_S
0b00: 45 43 4f 4e 44 0d 0a 7d 0d 0a 0d 0a 73 74 72 75 ECOND..}....stru
0b10: 63 74 20 53 51 4c 5f 59 45 41 52 5f 4d 4f 4e 54 ct SQL_YEAR_MONT
0b20: 48 5f 53 54 52 55 43 54 20 7b 0d 0a 09 53 51 4c H_STRUCT {...SQL
0b30: 55 49 4e 54 45 47 45 52 20 79 65 61 72 3b 0d 0a UINTEGER year;..
0b40: 09 53 51 4c 55 49 4e 54 45 47 45 52 20 6d 6f 6e .SQLUINTEGER mon
0b50: 74 68 3b 0d 0a 7d 0d 0a 0d 0a 73 74 72 75 63 74 th;..}....struct
0b60: 20 53 51 4c 5f 44 41 59 5f 53 45 43 4f 4e 44 5f SQL_DAY_SECOND_
0b70: 53 54 52 55 43 54 20 7b 0d 0a 09 53 51 4c 55 49 STRUCT {...SQLUI
0b80: 4e 54 45 47 45 52 20 64 61 79 3b 0d 0a 09 53 51 NTEGER day;...SQ
0b90: 4c 55 49 4e 54 45 47 45 52 20 68 6f 75 72 3b 0d LUINTEGER hour;.
0ba0: 0a 09 53 51 4c 55 49 4e 54 45 47 45 52 20 6d 69 ..SQLUINTEGER mi
0bb0: 6e 75 74 65 3b 0d 0a 09 53 51 4c 55 49 4e 54 45 nute;...SQLUINTE
0bc0: 47 45 52 20 73 65 63 6f 6e 64 3b 0d 0a 09 53 51 GER second;...SQ
0bd0: 4c 55 49 4e 54 45 47 45 52 20 66 72 61 63 74 69 LUINTEGER fracti
0be0: 6f 6e 3b 0d 0a 7d 0d 0a 0d 0a 73 74 72 75 63 74 on;..}....struct
0bf0: 20 53 51 4c 5f 49 4e 54 45 52 56 41 4c 5f 53 54 SQL_INTERVAL_ST
0c00: 52 55 43 54 20 7b 0d 0a 09 53 51 4c 49 4e 54 45 RUCT {...SQLINTE
0c10: 52 56 41 4c 20 69 6e 74 65 72 76 61 6c 5f 74 79 RVAL interval_ty
0c20: 70 65 3b 0d 0a 09 53 51 4c 53 4d 41 4c 4c 49 4e pe;...SQLSMALLIN
0c30: 54 20 69 6e 74 65 72 76 61 6c 5f 73 69 67 6e 3b T interval_sign;
0c40: 0d 0a 09 75 6e 69 6f 6e 20 5f 69 6e 74 76 61 6c ...union _intval
0c50: 20 7b 0d 0a 09 09 53 51 4c 5f 59 45 41 52 5f 4d {....SQL_YEAR_M
0c60: 4f 4e 54 48 5f 53 54 52 55 43 54 20 79 65 61 72 ONTH_STRUCT year
0c70: 5f 6d 6f 6e 74 68 3b 0d 0a 09 09 53 51 4c 5f 44 _month;....SQL_D
0c80: 41 59 5f 53 45 43 4f 4e 44 5f 53 54 52 55 43 54 AY_SECOND_STRUCT
0c90: 20 64 61 79 5f 73 65 63 6f 6e 64 3b 0d 0a 09 7d day_second;...}
0ca0: 0d 0a 09 5f 69 6e 74 76 61 6c 20 69 6e 74 76 61 ..._intval intva
0cb0: 6c 3b 09 0d 0a 7d 0d 0a 0d 0a 63 6f 6e 73 74 20 l;...}....const
0cc0: 53 51 4c 5f 4d 41 58 5f 4e 55 4d 45 52 49 43 5f SQL_MAX_NUMERIC_
0cd0: 4c 45 4e 20 3d 20 31 36 3b 0d 0a 0d 0a 73 74 72 LEN = 16;....str
0ce0: 75 63 74 20 53 51 4c 5f 4e 55 4d 45 52 49 43 5f uct SQL_NUMERIC_
0cf0: 53 54 52 55 43 54 20 7b 0d 0a 09 53 51 4c 43 48 STRUCT {...SQLCH
0d00: 41 52 20 70 72 65 63 69 73 69 6f 6e 3b 0d 0a 09 AR precision;...
0d10: 53 51 4c 53 43 48 41 52 20 73 63 61 6c 65 3b 0d SQLSCHAR scale;.
0d20: 0a 09 53 51 4c 43 48 41 52 20 73 69 67 6e 3b 0d ..SQLCHAR sign;.
0d30: 0a 09 53 51 4c 43 48 41 52 5b 53 51 4c 5f 4d 41 ..SQLCHAR[SQL_MA
0d40: 58 5f 4e 55 4d 45 52 49 43 5f 4c 45 4e 5d 20 76 X_NUMERIC_LEN] v
0d50: 61 6c 3b 0d 0a 7d 0d 0a 2f 2f 20 7d 20 4f 44 42 al;..}..// } ODB
0d60: 43 56 45 52 20 3e 3d 20 30 78 30 33 30 30 0d 0a CVER >= 0x0300..
0d70: 61 6c 69 61 73 20 47 55 49 44 20 53 51 4c 47 55 alias GUID SQLGU
0d80: 49 44 3b 0d 0a ID;..