Hex Artifact Content

Not logged in

Artifact 96280391078c825fa496528bf973d0f7e89f21bc:


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 0a 2a 20 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 73 71 6c 74 79 70            sqltyp
0070: 65 73 2e 64 20 20 20 20 20 20 20 20 20 20 20 20  es.d            
0080: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0090: 20 20 2a 0a 2a 20 20 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 2a 0a 2a 20              *.* 
00e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
00f0: 20 20 20 20 20 20 57 69 6e 64 6f 77 73 20 41 50        Windows AP
0100: 49 20 68 65 61 64 65 72 20 6d 6f 64 75 6c 65 20  I header module 
0110: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0120: 20 20 20 20 20 20 2a 0a 2a 20 20 20 20 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: 2a 0a 2a 20 20 20 20 20 20 20 20 20 20 20 20 20  *.*             
0180: 20 20 20 20 54 72 61 6e 73 6c 61 74 65 64 20 66      Translated f
0190: 72 6f 6d 20 4d 69 6e 47 57 20 57 69 6e 64 6f 77  rom MinGW Window
01a0: 73 20 68 65 61 64 65 72 73 20 20 20 20 20 20 20  s headers       
01b0: 20 20 20 20 20 20 20 20 20 20 2a 0a 2a 20 20 20            *.*   
01c0: 20 20 20 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 2a 0a 2a 20 20 20 20 20 20 20 20 20      *.*         
0210: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 50 6c                Pl
0220: 61 63 65 64 20 69 6e 74 6f 20 70 75 62 6c 69 63  aced into public
0230: 20 64 6f 6d 61 69 6e 20 20 20 20 20 20 20 20 20   domain         
0240: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 0a                *.
0250: 5c 2a 2a 2a 2a 2a 2a 2a 2a 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 2f 0a 6d 6f 64 75 6c 65  ********/.module
02a0: 20 77 69 6e 33 32 2e 73 71 6c 74 79 70 65 73 3b   win32.sqltypes;
02b0: 0a 0a 2f 2a 20 43 6f 6e 76 65 72 73 69 6f 6e 20  ../* Conversion 
02c0: 6e 6f 74 65 73 3a 0a 20 20 49 74 27 73 20 61 73  notes:.  It's as
02d0: 73 75 6d 65 64 20 74 68 61 74 20 4f 44 42 43 20  sumed that ODBC 
02e0: 3e 3d 20 30 78 30 33 30 30 2e 0a 2a 2f 0a 0a 70  >= 0x0300..*/..p
02f0: 72 69 76 61 74 65 20 69 6d 70 6f 72 74 20 77 69  rivate import wi
0300: 6e 33 32 2e 77 69 6e 64 65 66 3b 0a 70 72 69 76  n32.windef;.priv
0310: 61 74 65 20 69 6d 70 6f 72 74 20 77 69 6e 33 32  ate import win32
0320: 2e 62 61 73 65 74 79 70 73 3b 20 2f 2f 20 66 6f  .basetyps; // fo
0330: 72 20 47 55 49 44 0a 0a 61 6c 69 61 73 20 62 79  r GUID..alias by
0340: 74 65 20 53 43 48 41 52 2c 20 53 51 4c 53 43 48  te SCHAR, SQLSCH
0350: 41 52 3b 0a 61 6c 69 61 73 20 69 6e 74 20 53 44  AR;.alias int SD
0360: 57 4f 52 44 2c 20 53 4c 4f 4e 47 2c 20 53 51 4c  WORD, SLONG, SQL
0370: 49 4e 54 45 47 45 52 3b 0a 61 6c 69 61 73 20 73  INTEGER;.alias s
0380: 68 6f 72 74 20 53 57 4f 52 44 2c 20 53 53 48 4f  hort SWORD, SSHO
0390: 52 54 2c 20 52 45 54 43 4f 44 45 2c 20 53 51 4c  RT, RETCODE, SQL
03a0: 53 4d 41 4c 4c 49 4e 54 3b 0a 61 6c 69 61 73 20  SMALLINT;.alias 
03b0: 55 4c 4f 4e 47 20 55 44 57 4f 52 44 3b 0a 61 6c  ULONG UDWORD;.al
03c0: 69 61 73 20 55 53 48 4f 52 54 20 55 57 4f 52 44  ias USHORT UWORD
03d0: 2c 20 53 51 4c 55 53 4d 41 4c 4c 49 4e 54 3b 0a  , SQLUSMALLINT;.
03e0: 61 6c 69 61 73 20 64 6f 75 62 6c 65 20 53 44 4f  alias double SDO
03f0: 55 42 4c 45 2c 20 4c 44 4f 55 42 4c 45 3b 0a 61  UBLE, LDOUBLE;.a
0400: 6c 69 61 73 20 66 6c 6f 61 74 20 53 46 4c 4f 41  lias float SFLOA
0410: 54 3b 0a 61 6c 69 61 73 20 50 56 4f 49 44 20 50  T;.alias PVOID P
0420: 54 52 2c 20 48 45 4e 56 2c 20 48 44 42 43 2c 20  TR, HENV, HDBC, 
0430: 48 53 54 4d 54 2c 20 53 51 4c 50 4f 49 4e 54 45  HSTMT, SQLPOINTE
0440: 52 3b 0a 61 6c 69 61 73 20 55 43 48 41 52 20 53  R;.alias UCHAR S
0450: 51 4c 43 48 41 52 3b 0a 2f 2f 20 23 69 66 6e 64  QLCHAR;.// #ifnd
0460: 65 66 20 5f 57 49 4e 36 34 0a 61 6c 69 61 73 20  ef _WIN64.alias 
0470: 55 44 57 4f 52 44 20 53 51 4c 55 49 4e 54 45 47  UDWORD SQLUINTEG
0480: 45 52 3b 0a 2f 2f 20 23 65 6e 64 69 66 0a 0a 2f  ER;.// #endif../
0490: 2f 73 74 61 74 69 63 20 69 66 20 28 4f 44 42 43  /static if (ODBC
04a0: 56 45 52 20 3e 3d 20 30 78 30 33 30 30 29 20 7b  VER >= 0x0300) {
04b0: 0a 61 6c 69 61 73 20 48 41 4e 44 4c 45 20 53 51  .alias HANDLE SQ
04c0: 4c 48 41 4e 44 4c 45 3b 0a 61 6c 69 61 73 20 53  LHANDLE;.alias S
04d0: 51 4c 48 41 4e 44 4c 45 20 53 51 4c 48 45 4e 56  QLHANDLE SQLHENV
04e0: 2c 20 53 51 4c 48 44 42 43 2c 20 53 51 4c 48 53  , SQLHDBC, SQLHS
04f0: 54 4d 54 2c 20 53 51 4c 48 44 45 53 43 3b 0a 2f  TMT, SQLHDESC;./
0500: 2a 0a 7d 20 65 6c 73 65 20 7b 0a 61 6c 69 61 73  *.} else {.alias
0510: 20 76 6f 69 64 2a 20 53 51 4c 48 45 4e 56 3b 0a   void* SQLHENV;.
0520: 61 6c 69 61 73 20 76 6f 69 64 2a 20 53 51 4c 48  alias void* SQLH
0530: 44 42 43 3b 0a 61 6c 69 61 73 20 76 6f 69 64 2a  DBC;.alias void*
0540: 20 53 51 4c 48 53 54 4d 54 3b 0a 7d 0a 2a 2f 0a   SQLHSTMT;.}.*/.
0550: 61 6c 69 61 73 20 53 51 4c 53 4d 41 4c 4c 49 4e  alias SQLSMALLIN
0560: 54 20 53 51 4c 52 45 54 55 52 4e 3b 0a 61 6c 69  T SQLRETURN;.ali
0570: 61 73 20 48 57 4e 44 20 53 51 4c 48 57 4e 44 3b  as HWND SQLHWND;
0580: 0a 61 6c 69 61 73 20 55 4c 4f 4e 47 20 42 4f 4f  .alias ULONG BOO
0590: 4b 4d 41 52 4b 3b 0a 0a 61 6c 69 61 73 20 53 51  KMARK;..alias SQ
05a0: 4c 49 4e 54 45 47 45 52 20 53 51 4c 4c 45 4e 2c  LINTEGER SQLLEN,
05b0: 20 53 51 4c 52 4f 57 4f 46 46 53 45 54 3b 0a 61   SQLROWOFFSET;.a
05c0: 6c 69 61 73 20 53 51 4c 55 49 4e 54 45 47 45 52  lias SQLUINTEGER
05d0: 20 53 51 4c 52 4f 57 43 4f 55 4e 54 2c 20 53 51   SQLROWCOUNT, SQ
05e0: 4c 55 4c 45 4e 3b 0a 61 6c 69 61 73 20 44 57 4f  LULEN;.alias DWO
05f0: 52 44 20 53 51 4c 54 52 41 4e 53 49 44 3b 0a 61  RD SQLTRANSID;.a
0600: 6c 69 61 73 20 53 51 4c 55 53 4d 41 4c 4c 49 4e  lias SQLUSMALLIN
0610: 54 20 53 51 4c 53 45 54 50 4f 53 49 52 4f 57 3b  T SQLSETPOSIROW;
0620: 0a 61 6c 69 61 73 20 77 63 68 61 72 20 53 51 4c  .alias wchar SQL
0630: 57 43 48 41 52 3b 0a 0a 76 65 72 73 69 6f 6e 28  WCHAR;..version(
0640: 55 6e 69 63 6f 64 65 29 20 7b 0a 09 61 6c 69 61  Unicode) {..alia
0650: 73 20 53 51 4c 57 43 48 41 52 20 53 51 4c 54 43  s SQLWCHAR SQLTC
0660: 48 41 52 3b 0a 7d 20 65 6c 73 65 20 7b 0a 09 61  HAR;.} else {..a
0670: 6c 69 61 73 20 53 51 4c 43 48 41 52 20 20 53 51  lias SQLCHAR  SQ
0680: 4c 54 43 48 41 52 3b 0a 7d 0a 2f 2f 73 74 61 74  LTCHAR;.}.//stat
0690: 69 63 20 69 66 20 28 4f 44 42 43 56 45 52 20 3e  ic if (ODBCVER >
06a0: 3d 20 30 78 30 33 30 30 29 20 7b 0a 61 6c 69 61  = 0x0300) {.alia
06b0: 73 20 75 62 79 74 65 20 20 53 51 4c 44 41 54 45  s ubyte  SQLDATE
06c0: 2c 20 53 51 4c 44 45 43 49 4d 41 4c 3b 0a 61 6c  , SQLDECIMAL;.al
06d0: 69 61 73 20 64 6f 75 62 6c 65 20 53 51 4c 44 4f  ias double SQLDO
06e0: 55 42 4c 45 2c 20 53 51 4c 46 4c 4f 41 54 3b 0a  UBLE, SQLFLOAT;.
06f0: 61 6c 69 61 73 20 75 62 79 74 65 20 20 53 51 4c  alias ubyte  SQL
0700: 4e 55 4d 45 52 49 43 3b 0a 61 6c 69 61 73 20 66  NUMERIC;.alias f
0710: 6c 6f 61 74 20 20 53 51 4c 52 45 41 4c 3b 0a 61  loat  SQLREAL;.a
0720: 6c 69 61 73 20 75 62 79 74 65 20 20 53 51 4c 54  lias ubyte  SQLT
0730: 49 4d 45 2c 20 53 51 4c 54 49 4d 45 53 54 41 4d  IME, SQLTIMESTAM
0740: 50 2c 20 53 51 4c 56 41 52 43 48 41 52 3b 0a 61  P, SQLVARCHAR;.a
0750: 6c 69 61 73 20 6c 6f 6e 67 20 20 20 4f 44 42 43  lias long   ODBC
0760: 49 4e 54 36 34 2c 20 53 51 4c 42 49 47 49 4e 54  INT64, SQLBIGINT
0770: 3b 0a 61 6c 69 61 73 20 75 6c 6f 6e 67 20 20 53  ;.alias ulong  S
0780: 51 4c 55 42 49 47 49 4e 54 3b 0a 2f 2f 7d 0a 0a  QLUBIGINT;.//}..
0790: 73 74 72 75 63 74 20 44 41 54 45 5f 53 54 52 55  struct DATE_STRU
07a0: 43 54 20 7b 0a 09 53 51 4c 53 4d 41 4c 4c 49 4e  CT {..SQLSMALLIN
07b0: 54 20 79 65 61 72 3b 0a 09 53 51 4c 55 53 4d 41  T year;..SQLUSMA
07c0: 4c 4c 49 4e 54 20 6d 6f 6e 74 68 3b 0a 09 53 51  LLINT month;..SQ
07d0: 4c 55 53 4d 41 4c 4c 49 4e 54 20 64 61 79 3b 0a  LUSMALLINT day;.
07e0: 7d 0a 0a 73 74 72 75 63 74 20 54 49 4d 45 5f 53  }..struct TIME_S
07f0: 54 52 55 43 54 20 7b 0a 09 53 51 4c 55 53 4d 41  TRUCT {..SQLUSMA
0800: 4c 4c 49 4e 54 20 68 6f 75 72 3b 0a 09 53 51 4c  LLINT hour;..SQL
0810: 55 53 4d 41 4c 4c 49 4e 54 20 6d 69 6e 75 74 65  USMALLINT minute
0820: 3b 0a 09 53 51 4c 55 53 4d 41 4c 4c 49 4e 54 20  ;..SQLUSMALLINT 
0830: 73 65 63 6f 6e 64 3b 0a 7d 0a 0a 73 74 72 75 63  second;.}..struc
0840: 74 20 54 49 4d 45 53 54 41 4d 50 5f 53 54 52 55  t TIMESTAMP_STRU
0850: 43 54 20 7b 0a 09 53 51 4c 53 4d 41 4c 4c 49 4e  CT {..SQLSMALLIN
0860: 54 20 79 65 61 72 3b 0a 09 53 51 4c 55 53 4d 41  T year;..SQLUSMA
0870: 4c 4c 49 4e 54 20 6d 6f 6e 74 68 3b 0a 09 53 51  LLINT month;..SQ
0880: 4c 55 53 4d 41 4c 4c 49 4e 54 20 64 61 79 3b 0a  LUSMALLINT day;.
0890: 09 53 51 4c 55 53 4d 41 4c 4c 49 4e 54 20 68 6f  .SQLUSMALLINT ho
08a0: 75 72 3b 0a 09 53 51 4c 55 53 4d 41 4c 4c 49 4e  ur;..SQLUSMALLIN
08b0: 54 20 6d 69 6e 75 74 65 3b 0a 09 53 51 4c 55 53  T minute;..SQLUS
08c0: 4d 41 4c 4c 49 4e 54 20 73 65 63 6f 6e 64 3b 0a  MALLINT second;.
08d0: 09 53 51 4c 55 49 4e 54 45 47 45 52 20 66 72 61  .SQLUINTEGER fra
08e0: 63 74 69 6f 6e 3b 0a 7d 0a 0a 2f 2f 73 74 61 74  ction;.}..//stat
08f0: 69 63 20 69 66 20 28 4f 44 42 43 56 45 52 20 3e  ic if (ODBCVER >
0900: 3d 20 30 78 30 33 30 30 29 20 7b 0a 61 6c 69 61  = 0x0300) {.alia
0910: 73 20 44 41 54 45 5f 53 54 52 55 43 54 20 53 51  s DATE_STRUCT SQ
0920: 4c 5f 44 41 54 45 5f 53 54 52 55 43 54 3b 0a 61  L_DATE_STRUCT;.a
0930: 6c 69 61 73 20 54 49 4d 45 5f 53 54 52 55 43 54  lias TIME_STRUCT
0940: 20 53 51 4c 5f 54 49 4d 45 5f 53 54 52 55 43 54   SQL_TIME_STRUCT
0950: 3b 0a 61 6c 69 61 73 20 54 49 4d 45 53 54 41 4d  ;.alias TIMESTAM
0960: 50 5f 53 54 52 55 43 54 20 53 51 4c 5f 54 49 4d  P_STRUCT SQL_TIM
0970: 45 53 54 41 4d 50 5f 53 54 52 55 43 54 3b 0a 0a  ESTAMP_STRUCT;..
0980: 65 6e 75 6d 20 53 51 4c 49 4e 54 45 52 56 41 4c  enum SQLINTERVAL
0990: 20 7b 0a 09 53 51 4c 5f 49 53 5f 59 45 41 52 20   {..SQL_IS_YEAR 
09a0: 3d 20 31 2c 0a 09 53 51 4c 5f 49 53 5f 4d 4f 4e  = 1,..SQL_IS_MON
09b0: 54 48 2c 0a 09 53 51 4c 5f 49 53 5f 44 41 59 2c  TH,..SQL_IS_DAY,
09c0: 0a 09 53 51 4c 5f 49 53 5f 48 4f 55 52 2c 0a 09  ..SQL_IS_HOUR,..
09d0: 53 51 4c 5f 49 53 5f 4d 49 4e 55 54 45 2c 0a 09  SQL_IS_MINUTE,..
09e0: 53 51 4c 5f 49 53 5f 53 45 43 4f 4e 44 2c 0a 09  SQL_IS_SECOND,..
09f0: 53 51 4c 5f 49 53 5f 59 45 41 52 5f 54 4f 5f 4d  SQL_IS_YEAR_TO_M
0a00: 4f 4e 54 48 2c 0a 09 53 51 4c 5f 49 53 5f 44 41  ONTH,..SQL_IS_DA
0a10: 59 5f 54 4f 5f 48 4f 55 52 2c 0a 09 53 51 4c 5f  Y_TO_HOUR,..SQL_
0a20: 49 53 5f 44 41 59 5f 54 4f 5f 4d 49 4e 55 54 45  IS_DAY_TO_MINUTE
0a30: 2c 0a 09 53 51 4c 5f 49 53 5f 44 41 59 5f 54 4f  ,..SQL_IS_DAY_TO
0a40: 5f 53 45 43 4f 4e 44 2c 0a 09 53 51 4c 5f 49 53  _SECOND,..SQL_IS
0a50: 5f 48 4f 55 52 5f 54 4f 5f 4d 49 4e 55 54 45 2c  _HOUR_TO_MINUTE,
0a60: 0a 09 53 51 4c 5f 49 53 5f 48 4f 55 52 5f 54 4f  ..SQL_IS_HOUR_TO
0a70: 5f 53 45 43 4f 4e 44 2c 0a 09 53 51 4c 5f 49 53  _SECOND,..SQL_IS
0a80: 5f 4d 49 4e 55 54 45 5f 54 4f 5f 53 45 43 4f 4e  _MINUTE_TO_SECON
0a90: 44 0a 7d 0a 0a 73 74 72 75 63 74 20 53 51 4c 5f  D.}..struct SQL_
0aa0: 59 45 41 52 5f 4d 4f 4e 54 48 5f 53 54 52 55 43  YEAR_MONTH_STRUC
0ab0: 54 20 7b 0a 09 53 51 4c 55 49 4e 54 45 47 45 52  T {..SQLUINTEGER
0ac0: 20 79 65 61 72 3b 0a 09 53 51 4c 55 49 4e 54 45   year;..SQLUINTE
0ad0: 47 45 52 20 6d 6f 6e 74 68 3b 0a 7d 0a 0a 73 74  GER month;.}..st
0ae0: 72 75 63 74 20 53 51 4c 5f 44 41 59 5f 53 45 43  ruct SQL_DAY_SEC
0af0: 4f 4e 44 5f 53 54 52 55 43 54 20 7b 0a 09 53 51  OND_STRUCT {..SQ
0b00: 4c 55 49 4e 54 45 47 45 52 20 64 61 79 3b 0a 09  LUINTEGER day;..
0b10: 53 51 4c 55 49 4e 54 45 47 45 52 20 68 6f 75 72  SQLUINTEGER hour
0b20: 3b 0a 09 53 51 4c 55 49 4e 54 45 47 45 52 20 6d  ;..SQLUINTEGER m
0b30: 69 6e 75 74 65 3b 0a 09 53 51 4c 55 49 4e 54 45  inute;..SQLUINTE
0b40: 47 45 52 20 73 65 63 6f 6e 64 3b 0a 09 53 51 4c  GER second;..SQL
0b50: 55 49 4e 54 45 47 45 52 20 66 72 61 63 74 69 6f  UINTEGER fractio
0b60: 6e 3b 0a 7d 0a 0a 73 74 72 75 63 74 20 53 51 4c  n;.}..struct SQL
0b70: 5f 49 4e 54 45 52 56 41 4c 5f 53 54 52 55 43 54  _INTERVAL_STRUCT
0b80: 20 7b 0a 09 53 51 4c 49 4e 54 45 52 56 41 4c 20   {..SQLINTERVAL 
0b90: 69 6e 74 65 72 76 61 6c 5f 74 79 70 65 3b 0a 09  interval_type;..
0ba0: 53 51 4c 53 4d 41 4c 4c 49 4e 54 20 69 6e 74 65  SQLSMALLINT inte
0bb0: 72 76 61 6c 5f 73 69 67 6e 3b 0a 09 75 6e 69 6f  rval_sign;..unio
0bc0: 6e 20 5f 69 6e 74 76 61 6c 20 7b 0a 09 09 53 51  n _intval {...SQ
0bd0: 4c 5f 59 45 41 52 5f 4d 4f 4e 54 48 5f 53 54 52  L_YEAR_MONTH_STR
0be0: 55 43 54 20 79 65 61 72 5f 6d 6f 6e 74 68 3b 0a  UCT year_month;.
0bf0: 09 09 53 51 4c 5f 44 41 59 5f 53 45 43 4f 4e 44  ..SQL_DAY_SECOND
0c00: 5f 53 54 52 55 43 54 20 64 61 79 5f 73 65 63 6f  _STRUCT day_seco
0c10: 6e 64 3b 0a 09 7d 0a 09 5f 69 6e 74 76 61 6c 20  nd;..}.._intval 
0c20: 69 6e 74 76 61 6c 3b 09 0a 7d 0a 0a 63 6f 6e 73  intval;..}..cons
0c30: 74 20 53 51 4c 5f 4d 41 58 5f 4e 55 4d 45 52 49  t SQL_MAX_NUMERI
0c40: 43 5f 4c 45 4e 20 3d 20 31 36 3b 0a 0a 73 74 72  C_LEN = 16;..str
0c50: 75 63 74 20 53 51 4c 5f 4e 55 4d 45 52 49 43 5f  uct SQL_NUMERIC_
0c60: 53 54 52 55 43 54 20 7b 0a 09 53 51 4c 43 48 41  STRUCT {..SQLCHA
0c70: 52 20 70 72 65 63 69 73 69 6f 6e 3b 0a 09 53 51  R precision;..SQ
0c80: 4c 53 43 48 41 52 20 73 63 61 6c 65 3b 0a 09 53  LSCHAR scale;..S
0c90: 51 4c 43 48 41 52 20 73 69 67 6e 3b 0a 09 53 51  QLCHAR sign;..SQ
0ca0: 4c 43 48 41 52 20 76 61 6c 5b 53 51 4c 5f 4d 41  LCHAR val[SQL_MA
0cb0: 58 5f 4e 55 4d 45 52 49 43 5f 4c 45 4e 5d 3b 0a  X_NUMERIC_LEN];.
0cc0: 7d 0a 2f 2f 20 7d 20 4f 44 42 43 56 45 52 20 3e  }.// } ODBCVER >
0cd0: 3d 20 30 78 30 33 30 30 0a 61 6c 69 61 73 20 47  = 0x0300.alias G
0ce0: 55 49 44 20 53 51 4c 47 55 49 44 3b 0a           UID SQLGUID;.