System.Data.SQLite
Hex Artifact Content
Not logged in

Artifact b981a1d16fd2c6dccb125069d58922dc1d91aeb2:


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 0d 0a 20 2a 20 41 44  *********.. * AD
0040: 4f 2e 4e 45 54 20 32 2e 30 20 44 61 74 61 20 50  O.NET 2.0 Data P
0050: 72 6f 76 69 64 65 72 20 66 6f 72 20 53 51 4c 69  rovider for SQLi
0060: 74 65 20 56 65 72 73 69 6f 6e 20 33 2e 58 0d 0a  te Version 3.X..
0070: 20 2a 20 57 72 69 74 74 65 6e 20 62 79 20 52 6f   * Written by Ro
0080: 62 65 72 74 20 53 69 6d 70 73 6f 6e 20 28 72 6f  bert Simpson (ro
0090: 62 65 72 74 40 62 6c 61 63 6b 63 61 73 74 6c 65  bert@blackcastle
00a0: 73 6f 66 74 2e 63 6f 6d 29 0d 0a 20 2a 0d 0a 20  soft.com).. *.. 
00b0: 2a 20 52 65 6c 65 61 73 65 64 20 74 6f 20 74 68  * Released to th
00c0: 65 20 70 75 62 6c 69 63 20 64 6f 6d 61 69 6e 2c  e public domain,
00d0: 20 75 73 65 20 61 74 20 79 6f 75 72 20 6f 77 6e   use at your own
00e0: 20 72 69 73 6b 21 0d 0a 20 2a 2a 2a 2a 2a 2a 2a   risk!.. *******
00f0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0100: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0110: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0120: 2a 2f 0d 0a 0d 0a 75 73 69 6e 67 20 53 79 73 74  */....using Syst
0130: 65 6d 2e 43 6f 6c 6c 65 63 74 69 6f 6e 73 2e 47  em.Collections.G
0140: 65 6e 65 72 69 63 3b 0d 0a 0d 0a 6e 61 6d 65 73  eneric;....names
0150: 70 61 63 65 20 53 79 73 74 65 6d 2e 44 61 74 61  pace System.Data
0160: 2e 53 51 4c 69 74 65 0d 0a 7b 0d 0a 20 20 20 20  .SQLite..{..    
0170: 69 6e 74 65 72 6e 61 6c 20 73 74 61 74 69 63 20  internal static 
0180: 63 6c 61 73 73 20 53 51 4c 69 74 65 44 65 66 69  class SQLiteDefi
0190: 6e 65 43 6f 6e 73 74 61 6e 74 73 0d 0a 20 20 20  neConstants..   
01a0: 20 7b 0d 0a 20 20 20 20 20 20 20 20 70 75 62 6c   {..        publ
01b0: 69 63 20 73 74 61 74 69 63 20 72 65 61 64 6f 6e  ic static readon
01c0: 6c 79 20 49 4c 69 73 74 3c 73 74 72 69 6e 67 3e  ly IList<string>
01d0: 20 4f 70 74 69 6f 6e 4c 69 73 74 20 3d 20 6e 65   OptionList = ne
01e0: 77 20 4c 69 73 74 3c 73 74 72 69 6e 67 3e 28 6e  w List<string>(n
01f0: 65 77 20 73 74 72 69 6e 67 5b 5d 20 7b 0d 0a 23  ew string[] {..#
0200: 69 66 20 43 48 45 43 4b 5f 53 54 41 54 45 0d 0a  if CHECK_STATE..
0210: 20 20 20 20 20 20 20 20 20 20 20 20 22 43 48 45              "CHE
0220: 43 4b 5f 53 54 41 54 45 22 2c 0d 0a 23 65 6e 64  CK_STATE",..#end
0230: 69 66 0d 0a 0d 0a 23 69 66 20 43 4f 55 4e 54 5f  if....#if COUNT_
0240: 48 41 4e 44 4c 45 0d 0a 20 20 20 20 20 20 20 20  HANDLE..        
0250: 20 20 20 20 22 43 4f 55 4e 54 5f 48 41 4e 44 4c      "COUNT_HANDL
0260: 45 22 2c 0d 0a 23 65 6e 64 69 66 0d 0a 0d 0a 23  E",..#endif....#
0270: 69 66 20 44 45 42 55 47 0d 0a 20 20 20 20 20 20  if DEBUG..      
0280: 20 20 20 20 20 20 22 44 45 42 55 47 22 2c 0d 0a        "DEBUG",..
0290: 23 65 6e 64 69 66 0d 0a 0d 0a 23 69 66 20 49 4e  #endif....#if IN
02a0: 54 45 52 4f 50 5f 43 4f 44 45 43 0d 0a 20 20 20  TEROP_CODEC..   
02b0: 20 20 20 20 20 20 20 20 20 22 49 4e 54 45 52 4f           "INTERO
02c0: 50 5f 43 4f 44 45 43 22 2c 0d 0a 23 65 6e 64 69  P_CODEC",..#endi
02d0: 66 0d 0a 0d 0a 23 69 66 20 49 4e 54 45 52 4f 50  f....#if INTEROP
02e0: 5f 44 45 42 55 47 0d 0a 20 20 20 20 20 20 20 20  _DEBUG..        
02f0: 20 20 20 20 22 49 4e 54 45 52 4f 50 5f 44 45 42      "INTEROP_DEB
0300: 55 47 22 2c 0d 0a 23 65 6e 64 69 66 0d 0a 0d 0a  UG",..#endif....
0310: 23 69 66 20 49 4e 54 45 52 4f 50 5f 45 58 54 45  #if INTEROP_EXTE
0320: 4e 53 49 4f 4e 5f 46 55 4e 43 54 49 4f 4e 53 0d  NSION_FUNCTIONS.
0330: 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 49 4e  .            "IN
0340: 54 45 52 4f 50 5f 45 58 54 45 4e 53 49 4f 4e 5f  TEROP_EXTENSION_
0350: 46 55 4e 43 54 49 4f 4e 53 22 2c 0d 0a 23 65 6e  FUNCTIONS",..#en
0360: 64 69 66 0d 0a 0d 0a 23 69 66 20 49 4e 54 45 52  dif....#if INTER
0370: 4f 50 5f 4c 45 47 41 43 59 5f 43 4c 4f 53 45 0d  OP_LEGACY_CLOSE.
0380: 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 49 4e  .            "IN
0390: 54 45 52 4f 50 5f 4c 45 47 41 43 59 5f 43 4c 4f  TEROP_LEGACY_CLO
03a0: 53 45 22 2c 0d 0a 23 65 6e 64 69 66 0d 0a 0d 0a  SE",..#endif....
03b0: 23 69 66 20 49 4e 54 45 52 4f 50 5f 4c 4f 47 0d  #if INTEROP_LOG.
03c0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 49 4e  .            "IN
03d0: 54 45 52 4f 50 5f 4c 4f 47 22 2c 0d 0a 23 65 6e  TEROP_LOG",..#en
03e0: 64 69 66 0d 0a 0d 0a 23 69 66 20 49 4e 54 45 52  dif....#if INTER
03f0: 4f 50 5f 54 45 53 54 5f 45 58 54 45 4e 53 49 4f  OP_TEST_EXTENSIO
0400: 4e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 22  N..            "
0410: 49 4e 54 45 52 4f 50 5f 54 45 53 54 5f 45 58 54  INTEROP_TEST_EXT
0420: 45 4e 53 49 4f 4e 22 2c 0d 0a 23 65 6e 64 69 66  ENSION",..#endif
0430: 0d 0a 0d 0a 23 69 66 20 49 4e 54 45 52 4f 50 5f  ....#if INTEROP_
0440: 56 49 52 54 55 41 4c 5f 54 41 42 4c 45 0d 0a 20  VIRTUAL_TABLE.. 
0450: 20 20 20 20 20 20 20 20 20 20 20 22 49 4e 54 45             "INTE
0460: 52 4f 50 5f 56 49 52 54 55 41 4c 5f 54 41 42 4c  ROP_VIRTUAL_TABL
0470: 45 22 2c 0d 0a 23 65 6e 64 69 66 0d 0a 0d 0a 23  E",..#endif....#
0480: 69 66 20 4e 45 54 5f 32 30 0d 0a 20 20 20 20 20  if NET_20..     
0490: 20 20 20 20 20 20 20 22 4e 45 54 5f 32 30 22 2c         "NET_20",
04a0: 0d 0a 23 65 6e 64 69 66 0d 0a 0d 0a 23 69 66 20  ..#endif....#if 
04b0: 4e 45 54 5f 33 35 0d 0a 20 20 20 20 20 20 20 20  NET_35..        
04c0: 20 20 20 20 22 4e 45 54 5f 33 35 22 2c 0d 0a 23      "NET_35",..#
04d0: 65 6e 64 69 66 0d 0a 0d 0a 23 69 66 20 4e 45 54  endif....#if NET
04e0: 5f 34 30 0d 0a 20 20 20 20 20 20 20 20 20 20 20  _40..           
04f0: 20 22 4e 45 54 5f 34 30 22 2c 0d 0a 23 65 6e 64   "NET_40",..#end
0500: 69 66 0d 0a 0d 0a 23 69 66 20 4e 45 54 5f 34 35  if....#if NET_45
0510: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 4e  ..            "N
0520: 45 54 5f 34 35 22 2c 0d 0a 23 65 6e 64 69 66 0d  ET_45",..#endif.
0530: 0a 0d 0a 23 69 66 20 4e 45 54 5f 34 35 31 0d 0a  ...#if NET_451..
0540: 20 20 20 20 20 20 20 20 20 20 20 20 22 4e 45 54              "NET
0550: 5f 34 35 31 22 2c 0d 0a 23 65 6e 64 69 66 0d 0a  _451",..#endif..
0560: 0d 0a 23 69 66 20 4e 45 54 5f 43 4f 4d 50 41 43  ..#if NET_COMPAC
0570: 54 5f 32 30 0d 0a 20 20 20 20 20 20 20 20 20 20  T_20..          
0580: 20 20 22 4e 45 54 5f 43 4f 4d 50 41 43 54 5f 32    "NET_COMPACT_2
0590: 30 22 2c 0d 0a 23 65 6e 64 69 66 0d 0a 0d 0a 23  0",..#endif....#
05a0: 69 66 20 50 4c 41 54 46 4f 52 4d 5f 43 4f 4d 50  if PLATFORM_COMP
05b0: 41 43 54 46 52 41 4d 45 57 4f 52 4b 0d 0a 20 20  ACTFRAMEWORK..  
05c0: 20 20 20 20 20 20 20 20 20 20 22 50 4c 41 54 46            "PLATF
05d0: 4f 52 4d 5f 43 4f 4d 50 41 43 54 46 52 41 4d 45  ORM_COMPACTFRAME
05e0: 57 4f 52 4b 22 2c 0d 0a 23 65 6e 64 69 66 0d 0a  WORK",..#endif..
05f0: 0d 0a 23 69 66 20 50 52 45 4c 4f 41 44 5f 4e 41  ..#if PRELOAD_NA
0600: 54 49 56 45 5f 4c 49 42 52 41 52 59 0d 0a 20 20  TIVE_LIBRARY..  
0610: 20 20 20 20 20 20 20 20 20 20 22 50 52 45 4c 4f            "PRELO
0620: 41 44 5f 4e 41 54 49 56 45 5f 4c 49 42 52 41 52  AD_NATIVE_LIBRAR
0630: 59 22 2c 0d 0a 23 65 6e 64 69 66 0d 0a 0d 0a 23  Y",..#endif....#
0640: 69 66 20 52 45 54 41 52 47 45 54 41 42 4c 45 0d  if RETARGETABLE.
0650: 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 52 45  .            "RE
0660: 54 41 52 47 45 54 41 42 4c 45 22 2c 0d 0a 23 65  TARGETABLE",..#e
0670: 6e 64 69 66 0d 0a 0d 0a 23 69 66 20 53 51 4c 49  ndif....#if SQLI
0680: 54 45 5f 53 54 41 4e 44 41 52 44 0d 0a 20 20 20  TE_STANDARD..   
0690: 20 20 20 20 20 20 20 20 20 22 53 51 4c 49 54 45           "SQLITE
06a0: 5f 53 54 41 4e 44 41 52 44 22 2c 0d 0a 23 65 6e  _STANDARD",..#en
06b0: 64 69 66 0d 0a 0d 0a 23 69 66 20 54 48 52 4f 57  dif....#if THROW
06c0: 5f 4f 4e 5f 44 49 53 50 4f 53 45 44 0d 0a 20 20  _ON_DISPOSED..  
06d0: 20 20 20 20 20 20 20 20 20 20 22 54 48 52 4f 57            "THROW
06e0: 5f 4f 4e 5f 44 49 53 50 4f 53 45 44 22 2c 0d 0a  _ON_DISPOSED",..
06f0: 23 65 6e 64 69 66 0d 0a 0d 0a 23 69 66 20 54 52  #endif....#if TR
0700: 41 43 45 0d 0a 20 20 20 20 20 20 20 20 20 20 20  ACE..           
0710: 20 22 54 52 41 43 45 22 2c 0d 0a 23 65 6e 64 69   "TRACE",..#endi
0720: 66 0d 0a 0d 0a 23 69 66 20 54 52 41 43 45 5f 43  f....#if TRACE_C
0730: 4f 4e 4e 45 43 54 49 4f 4e 0d 0a 20 20 20 20 20  ONNECTION..     
0740: 20 20 20 20 20 20 20 22 54 52 41 43 45 5f 43 4f         "TRACE_CO
0750: 4e 4e 45 43 54 49 4f 4e 22 2c 0d 0a 23 65 6e 64  NNECTION",..#end
0760: 69 66 0d 0a 0d 0a 23 69 66 20 54 52 41 43 45 5f  if....#if TRACE_
0770: 48 41 4e 44 4c 45 0d 0a 20 20 20 20 20 20 20 20  HANDLE..        
0780: 20 20 20 20 22 54 52 41 43 45 5f 48 41 4e 44 4c      "TRACE_HANDL
0790: 45 22 2c 0d 0a 23 65 6e 64 69 66 0d 0a 0d 0a 23  E",..#endif....#
07a0: 69 66 20 54 52 41 43 45 5f 50 52 45 4c 4f 41 44  if TRACE_PRELOAD
07b0: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 54  ..            "T
07c0: 52 41 43 45 5f 50 52 45 4c 4f 41 44 22 2c 0d 0a  RACE_PRELOAD",..
07d0: 23 65 6e 64 69 66 0d 0a 0d 0a 23 69 66 20 54 52  #endif....#if TR
07e0: 41 43 45 5f 53 48 41 52 45 44 0d 0a 20 20 20 20  ACE_SHARED..    
07f0: 20 20 20 20 20 20 20 20 22 54 52 41 43 45 5f 53          "TRACE_S
0800: 48 41 52 45 44 22 2c 0d 0a 23 65 6e 64 69 66 0d  HARED",..#endif.
0810: 0a 0d 0a 23 69 66 20 54 52 41 43 45 5f 53 54 41  ...#if TRACE_STA
0820: 54 45 4d 45 4e 54 0d 0a 20 20 20 20 20 20 20 20  TEMENT..        
0830: 20 20 20 20 22 54 52 41 43 45 5f 53 54 41 54 45      "TRACE_STATE
0840: 4d 45 4e 54 22 2c 0d 0a 23 65 6e 64 69 66 0d 0a  MENT",..#endif..
0850: 0d 0a 23 69 66 20 54 52 41 43 45 5f 57 41 52 4e  ..#if TRACE_WARN
0860: 49 4e 47 0d 0a 20 20 20 20 20 20 20 20 20 20 20  ING..           
0870: 20 22 54 52 41 43 45 5f 57 41 52 4e 49 4e 47 22   "TRACE_WARNING"
0880: 2c 0d 0a 23 65 6e 64 69 66 0d 0a 0d 0a 23 69 66  ,..#endif....#if
0890: 20 54 52 41 43 4b 5f 4d 45 4d 4f 52 59 5f 42 59   TRACK_MEMORY_BY
08a0: 54 45 53 0d 0a 20 20 20 20 20 20 20 20 20 20 20  TES..           
08b0: 20 22 54 52 41 43 4b 5f 4d 45 4d 4f 52 59 5f 42   "TRACK_MEMORY_B
08c0: 59 54 45 53 22 2c 0d 0a 23 65 6e 64 69 66 0d 0a  YTES",..#endif..
08d0: 0d 0a 23 69 66 20 55 53 45 5f 49 4e 54 45 52 4f  ..#if USE_INTERO
08e0: 50 5f 44 4c 4c 0d 0a 20 20 20 20 20 20 20 20 20  P_DLL..         
08f0: 20 20 20 22 55 53 45 5f 49 4e 54 45 52 4f 50 5f     "USE_INTEROP_
0900: 44 4c 4c 22 2c 0d 0a 23 65 6e 64 69 66 0d 0a 0d  DLL",..#endif...
0910: 0a 23 69 66 20 55 53 45 5f 50 52 45 50 41 52 45  .#if USE_PREPARE
0920: 5f 56 32 0d 0a 20 20 20 20 20 20 20 20 20 20 20  _V2..           
0930: 20 22 55 53 45 5f 50 52 45 50 41 52 45 5f 56 32   "USE_PREPARE_V2
0940: 22 2c 0d 0a 23 65 6e 64 69 66 0d 0a 0d 0a 23 69  ",..#endif....#i
0950: 66 20 57 49 4e 44 4f 57 53 0d 0a 20 20 20 20 20  f WINDOWS..     
0960: 20 20 20 20 20 20 20 22 57 49 4e 44 4f 57 53 22         "WINDOWS"
0970: 2c 0d 0a 23 65 6e 64 69 66 0d 0a 0d 0a 20 20 20  ,..#endif....   
0980: 20 20 20 20 20 20 20 20 20 6e 75 6c 6c 0d 0a 20           null.. 
0990: 20 20 20 20 20 20 20 7d 29 3b 0d 0a 20 20 20 20         });..    
09a0: 7d 0d 0a 7d 0d 0a                                }..}..