Hex Artifact Content

Not logged in

Artifact e13dc9b878fc2ab3cc88c0a8fc4c332225955b9b:


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;..