System.Data.SQLite
Hex Artifact Content
Not logged in

Artifact 9e02b52a8658d1ef49a4bfb972b1ecf6c6d93bd5:


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 49 4e 43 4c 55 44 45 5f 43 45 52 4f 44  OP_INCLUDE_CEROD
0380: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 49  ..            "I
0390: 4e 54 45 52 4f 50 5f 49 4e 43 4c 55 44 45 5f 43  NTEROP_INCLUDE_C
03a0: 45 52 4f 44 22 2c 0d 0a 23 65 6e 64 69 66 0d 0a  EROD",..#endif..
03b0: 0d 0a 23 69 66 20 49 4e 54 45 52 4f 50 5f 49 4e  ..#if INTEROP_IN
03c0: 43 4c 55 44 45 5f 53 45 45 0d 0a 20 20 20 20 20  CLUDE_SEE..     
03d0: 20 20 20 20 20 20 20 22 49 4e 54 45 52 4f 50 5f         "INTEROP_
03e0: 49 4e 43 4c 55 44 45 5f 53 45 45 22 2c 0d 0a 23  INCLUDE_SEE",..#
03f0: 65 6e 64 69 66 0d 0a 0d 0a 23 69 66 20 49 4e 54  endif....#if INT
0400: 45 52 4f 50 5f 4c 45 47 41 43 59 5f 43 4c 4f 53  EROP_LEGACY_CLOS
0410: 45 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 22  E..            "
0420: 49 4e 54 45 52 4f 50 5f 4c 45 47 41 43 59 5f 43  INTEROP_LEGACY_C
0430: 4c 4f 53 45 22 2c 0d 0a 23 65 6e 64 69 66 0d 0a  LOSE",..#endif..
0440: 0d 0a 23 69 66 20 49 4e 54 45 52 4f 50 5f 4c 4f  ..#if INTEROP_LO
0450: 47 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 22  G..            "
0460: 49 4e 54 45 52 4f 50 5f 4c 4f 47 22 2c 0d 0a 23  INTEROP_LOG",..#
0470: 65 6e 64 69 66 0d 0a 0d 0a 23 69 66 20 49 4e 54  endif....#if INT
0480: 45 52 4f 50 5f 54 45 53 54 5f 45 58 54 45 4e 53  EROP_TEST_EXTENS
0490: 49 4f 4e 0d 0a 20 20 20 20 20 20 20 20 20 20 20  ION..           
04a0: 20 22 49 4e 54 45 52 4f 50 5f 54 45 53 54 5f 45   "INTEROP_TEST_E
04b0: 58 54 45 4e 53 49 4f 4e 22 2c 0d 0a 23 65 6e 64  XTENSION",..#end
04c0: 69 66 0d 0a 0d 0a 23 69 66 20 49 4e 54 45 52 4f  if....#if INTERO
04d0: 50 5f 56 49 52 54 55 41 4c 5f 54 41 42 4c 45 0d  P_VIRTUAL_TABLE.
04e0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 49 4e  .            "IN
04f0: 54 45 52 4f 50 5f 56 49 52 54 55 41 4c 5f 54 41  TEROP_VIRTUAL_TA
0500: 42 4c 45 22 2c 0d 0a 23 65 6e 64 69 66 0d 0a 0d  BLE",..#endif...
0510: 0a 23 69 66 20 4e 45 54 5f 32 30 0d 0a 20 20 20  .#if NET_20..   
0520: 20 20 20 20 20 20 20 20 20 22 4e 45 54 5f 32 30           "NET_20
0530: 22 2c 0d 0a 23 65 6e 64 69 66 0d 0a 0d 0a 23 69  ",..#endif....#i
0540: 66 20 4e 45 54 5f 33 35 0d 0a 20 20 20 20 20 20  f NET_35..      
0550: 20 20 20 20 20 20 22 4e 45 54 5f 33 35 22 2c 0d        "NET_35",.
0560: 0a 23 65 6e 64 69 66 0d 0a 0d 0a 23 69 66 20 4e  .#endif....#if N
0570: 45 54 5f 34 30 0d 0a 20 20 20 20 20 20 20 20 20  ET_40..         
0580: 20 20 20 22 4e 45 54 5f 34 30 22 2c 0d 0a 23 65     "NET_40",..#e
0590: 6e 64 69 66 0d 0a 0d 0a 23 69 66 20 4e 45 54 5f  ndif....#if NET_
05a0: 34 35 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  45..            
05b0: 22 4e 45 54 5f 34 35 22 2c 0d 0a 23 65 6e 64 69  "NET_45",..#endi
05c0: 66 0d 0a 0d 0a 23 69 66 20 4e 45 54 5f 34 35 31  f....#if NET_451
05d0: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 4e  ..            "N
05e0: 45 54 5f 34 35 31 22 2c 0d 0a 23 65 6e 64 69 66  ET_451",..#endif
05f0: 0d 0a 0d 0a 23 69 66 20 4e 45 54 5f 43 4f 4d 50  ....#if NET_COMP
0600: 41 43 54 5f 32 30 0d 0a 20 20 20 20 20 20 20 20  ACT_20..        
0610: 20 20 20 20 22 4e 45 54 5f 43 4f 4d 50 41 43 54      "NET_COMPACT
0620: 5f 32 30 22 2c 0d 0a 23 65 6e 64 69 66 0d 0a 0d  _20",..#endif...
0630: 0a 23 69 66 20 50 4c 41 54 46 4f 52 4d 5f 43 4f  .#if PLATFORM_CO
0640: 4d 50 41 43 54 46 52 41 4d 45 57 4f 52 4b 0d 0a  MPACTFRAMEWORK..
0650: 20 20 20 20 20 20 20 20 20 20 20 20 22 50 4c 41              "PLA
0660: 54 46 4f 52 4d 5f 43 4f 4d 50 41 43 54 46 52 41  TFORM_COMPACTFRA
0670: 4d 45 57 4f 52 4b 22 2c 0d 0a 23 65 6e 64 69 66  MEWORK",..#endif
0680: 0d 0a 0d 0a 23 69 66 20 50 52 45 4c 4f 41 44 5f  ....#if PRELOAD_
0690: 4e 41 54 49 56 45 5f 4c 49 42 52 41 52 59 0d 0a  NATIVE_LIBRARY..
06a0: 20 20 20 20 20 20 20 20 20 20 20 20 22 50 52 45              "PRE
06b0: 4c 4f 41 44 5f 4e 41 54 49 56 45 5f 4c 49 42 52  LOAD_NATIVE_LIBR
06c0: 41 52 59 22 2c 0d 0a 23 65 6e 64 69 66 0d 0a 0d  ARY",..#endif...
06d0: 0a 23 69 66 20 52 45 54 41 52 47 45 54 41 42 4c  .#if RETARGETABL
06e0: 45 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 22  E..            "
06f0: 52 45 54 41 52 47 45 54 41 42 4c 45 22 2c 0d 0a  RETARGETABLE",..
0700: 23 65 6e 64 69 66 0d 0a 0d 0a 23 69 66 20 53 51  #endif....#if SQ
0710: 4c 49 54 45 5f 53 54 41 4e 44 41 52 44 0d 0a 20  LITE_STANDARD.. 
0720: 20 20 20 20 20 20 20 20 20 20 20 22 53 51 4c 49             "SQLI
0730: 54 45 5f 53 54 41 4e 44 41 52 44 22 2c 0d 0a 23  TE_STANDARD",..#
0740: 65 6e 64 69 66 0d 0a 0d 0a 23 69 66 20 54 48 52  endif....#if THR
0750: 4f 57 5f 4f 4e 5f 44 49 53 50 4f 53 45 44 0d 0a  OW_ON_DISPOSED..
0760: 20 20 20 20 20 20 20 20 20 20 20 20 22 54 48 52              "THR
0770: 4f 57 5f 4f 4e 5f 44 49 53 50 4f 53 45 44 22 2c  OW_ON_DISPOSED",
0780: 0d 0a 23 65 6e 64 69 66 0d 0a 0d 0a 23 69 66 20  ..#endif....#if 
0790: 54 52 41 43 45 0d 0a 20 20 20 20 20 20 20 20 20  TRACE..         
07a0: 20 20 20 22 54 52 41 43 45 22 2c 0d 0a 23 65 6e     "TRACE",..#en
07b0: 64 69 66 0d 0a 0d 0a 23 69 66 20 54 52 41 43 45  dif....#if TRACE
07c0: 5f 43 4f 4e 4e 45 43 54 49 4f 4e 0d 0a 20 20 20  _CONNECTION..   
07d0: 20 20 20 20 20 20 20 20 20 22 54 52 41 43 45 5f           "TRACE_
07e0: 43 4f 4e 4e 45 43 54 49 4f 4e 22 2c 0d 0a 23 65  CONNECTION",..#e
07f0: 6e 64 69 66 0d 0a 0d 0a 23 69 66 20 54 52 41 43  ndif....#if TRAC
0800: 45 5f 44 45 54 45 43 54 49 4f 4e 0d 0a 20 20 20  E_DETECTION..   
0810: 20 20 20 20 20 20 20 20 20 22 54 52 41 43 45 5f           "TRACE_
0820: 44 45 54 45 43 54 49 4f 4e 22 2c 0d 0a 23 65 6e  DETECTION",..#en
0830: 64 69 66 0d 0a 0d 0a 23 69 66 20 54 52 41 43 45  dif....#if TRACE
0840: 5f 48 41 4e 44 4c 45 0d 0a 20 20 20 20 20 20 20  _HANDLE..       
0850: 20 20 20 20 20 22 54 52 41 43 45 5f 48 41 4e 44       "TRACE_HAND
0860: 4c 45 22 2c 0d 0a 23 65 6e 64 69 66 0d 0a 0d 0a  LE",..#endif....
0870: 23 69 66 20 54 52 41 43 45 5f 50 52 45 4c 4f 41  #if TRACE_PRELOA
0880: 44 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 22  D..            "
0890: 54 52 41 43 45 5f 50 52 45 4c 4f 41 44 22 2c 0d  TRACE_PRELOAD",.
08a0: 0a 23 65 6e 64 69 66 0d 0a 0d 0a 23 69 66 20 54  .#endif....#if T
08b0: 52 41 43 45 5f 53 48 41 52 45 44 0d 0a 20 20 20  RACE_SHARED..   
08c0: 20 20 20 20 20 20 20 20 20 22 54 52 41 43 45 5f           "TRACE_
08d0: 53 48 41 52 45 44 22 2c 0d 0a 23 65 6e 64 69 66  SHARED",..#endif
08e0: 0d 0a 0d 0a 23 69 66 20 54 52 41 43 45 5f 53 54  ....#if TRACE_ST
08f0: 41 54 45 4d 45 4e 54 0d 0a 20 20 20 20 20 20 20  ATEMENT..       
0900: 20 20 20 20 20 22 54 52 41 43 45 5f 53 54 41 54       "TRACE_STAT
0910: 45 4d 45 4e 54 22 2c 0d 0a 23 65 6e 64 69 66 0d  EMENT",..#endif.
0920: 0a 0d 0a 23 69 66 20 54 52 41 43 45 5f 57 41 52  ...#if TRACE_WAR
0930: 4e 49 4e 47 0d 0a 20 20 20 20 20 20 20 20 20 20  NING..          
0940: 20 20 22 54 52 41 43 45 5f 57 41 52 4e 49 4e 47    "TRACE_WARNING
0950: 22 2c 0d 0a 23 65 6e 64 69 66 0d 0a 0d 0a 23 69  ",..#endif....#i
0960: 66 20 54 52 41 43 4b 5f 4d 45 4d 4f 52 59 5f 42  f TRACK_MEMORY_B
0970: 59 54 45 53 0d 0a 20 20 20 20 20 20 20 20 20 20  YTES..          
0980: 20 20 22 54 52 41 43 4b 5f 4d 45 4d 4f 52 59 5f    "TRACK_MEMORY_
0990: 42 59 54 45 53 22 2c 0d 0a 23 65 6e 64 69 66 0d  BYTES",..#endif.
09a0: 0a 0d 0a 23 69 66 20 55 53 45 5f 45 4e 54 49 54  ...#if USE_ENTIT
09b0: 59 5f 46 52 41 4d 45 57 4f 52 4b 5f 36 0d 0a 20  Y_FRAMEWORK_6.. 
09c0: 20 20 20 20 20 20 20 20 20 20 20 22 55 53 45 5f             "USE_
09d0: 45 4e 54 49 54 59 5f 46 52 41 4d 45 57 4f 52 4b  ENTITY_FRAMEWORK
09e0: 5f 36 22 2c 0d 0a 23 65 6e 64 69 66 0d 0a 0d 0a  _6",..#endif....
09f0: 23 69 66 20 55 53 45 5f 49 4e 54 45 52 4f 50 5f  #if USE_INTEROP_
0a00: 44 4c 4c 0d 0a 20 20 20 20 20 20 20 20 20 20 20  DLL..           
0a10: 20 22 55 53 45 5f 49 4e 54 45 52 4f 50 5f 44 4c   "USE_INTEROP_DL
0a20: 4c 22 2c 0d 0a 23 65 6e 64 69 66 0d 0a 0d 0a 23  L",..#endif....#
0a30: 69 66 20 55 53 45 5f 50 52 45 50 41 52 45 5f 56  if USE_PREPARE_V
0a40: 32 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 22  2..            "
0a50: 55 53 45 5f 50 52 45 50 41 52 45 5f 56 32 22 2c  USE_PREPARE_V2",
0a60: 0d 0a 23 65 6e 64 69 66 0d 0a 0d 0a 23 69 66 20  ..#endif....#if 
0a70: 57 49 4e 44 4f 57 53 0d 0a 20 20 20 20 20 20 20  WINDOWS..       
0a80: 20 20 20 20 20 22 57 49 4e 44 4f 57 53 22 2c 0d       "WINDOWS",.
0a90: 0a 23 65 6e 64 69 66 0d 0a 0d 0a 20 20 20 20 20  .#endif....     
0aa0: 20 20 20 20 20 20 20 6e 75 6c 6c 0d 0a 20 20 20         null..   
0ab0: 20 20 20 20 20 7d 29 3b 0d 0a 20 20 20 20 7d 0d       });..    }.
0ac0: 0a 7d 0d 0a                                      .}..