System.Data.SQLite
Hex Artifact Content
Not logged in

Artifact 6490f1be34ed389afcd4614963bd6fa53fddffe2:


0000: ef bb bf 2f 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 0d 0a 20 2a  ************.. *
0040: 20 41 44 4f 2e 4e 45 54 20 32 2e 30 20 44 61 74   ADO.NET 2.0 Dat
0050: 61 20 50 72 6f 76 69 64 65 72 20 66 6f 72 20 53  a Provider for S
0060: 51 4c 69 74 65 20 56 65 72 73 69 6f 6e 20 33 2e  QLite Version 3.
0070: 58 0d 0a 20 2a 20 57 72 69 74 74 65 6e 20 62 79  X.. * Written by
0080: 20 52 6f 62 65 72 74 20 53 69 6d 70 73 6f 6e 20   Robert Simpson 
0090: 28 72 6f 62 65 72 74 40 62 6c 61 63 6b 63 61 73  (robert@blackcas
00a0: 74 6c 65 73 6f 66 74 2e 63 6f 6d 29 0d 0a 20 2a  tlesoft.com).. *
00b0: 20 0d 0a 20 2a 20 52 65 6c 65 61 73 65 64 20 74   .. * Released t
00c0: 6f 20 74 68 65 20 70 75 62 6c 69 63 20 64 6f 6d  o the public dom
00d0: 61 69 6e 2c 20 75 73 65 20 61 74 20 79 6f 75 72  ain, use at your
00e0: 20 6f 77 6e 20 72 69 73 6b 21 0d 0a 20 2a 2a 2a   own 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 2a 2a 2a 2a 2f 0d 0a 0d 0a 6e 61 6d 65 73 70  *****/....namesp
0130: 61 63 65 20 53 79 73 74 65 6d 2e 44 61 74 61 2e  ace System.Data.
0140: 53 51 4c 69 74 65 0d 0a 7b 0d 0a 20 20 75 73 69  SQLite..{..  usi
0150: 6e 67 20 53 79 73 74 65 6d 3b 0d 0a 20 20 75 73  ng System;..  us
0160: 69 6e 67 20 53 79 73 74 65 6d 2e 53 65 63 75 72  ing System.Secur
0170: 69 74 79 3b 0d 0a 20 20 75 73 69 6e 67 20 53 79  ity;..  using Sy
0180: 73 74 65 6d 2e 52 75 6e 74 69 6d 65 2e 49 6e 74  stem.Runtime.Int
0190: 65 72 6f 70 53 65 72 76 69 63 65 73 3b 0d 0a 0d  eropServices;...
01a0: 0a 23 69 66 20 21 50 4c 41 54 46 4f 52 4d 5f 43  .#if !PLATFORM_C
01b0: 4f 4d 50 41 43 54 46 52 41 4d 45 57 4f 52 4b 20  OMPACTFRAMEWORK 
01c0: 26 26 20 21 44 45 42 55 47 0d 0a 20 20 5b 53 75  && !DEBUG..  [Su
01d0: 70 70 72 65 73 73 55 6e 6d 61 6e 61 67 65 64 43  ppressUnmanagedC
01e0: 6f 64 65 53 65 63 75 72 69 74 79 5d 0d 0a 23 65  odeSecurity]..#e
01f0: 6e 64 69 66 0d 0a 20 20 69 6e 74 65 72 6e 61 6c  ndif..  internal
0200: 20 73 74 61 74 69 63 20 63 6c 61 73 73 20 55 6e   static class Un
0210: 73 61 66 65 4e 61 74 69 76 65 4d 65 74 68 6f 64  safeNativeMethod
0220: 73 0d 0a 20 20 7b 0d 0a 23 69 66 20 21 53 51 4c  s..  {..#if !SQL
0230: 49 54 45 5f 53 54 41 4e 44 41 52 44 0d 0a 0d 0a  ITE_STANDARD....
0240: 23 69 66 20 21 55 53 45 5f 49 4e 54 45 52 4f 50  #if !USE_INTEROP
0250: 5f 44 4c 4c 0d 0a 0d 0a 23 69 66 20 21 50 4c 41  _DLL....#if !PLA
0260: 54 46 4f 52 4d 5f 43 4f 4d 50 41 43 54 46 52 41  TFORM_COMPACTFRA
0270: 4d 45 57 4f 52 4b 0d 0a 20 20 20 20 70 72 69 76  MEWORK..    priv
0280: 61 74 65 20 63 6f 6e 73 74 20 73 74 72 69 6e 67  ate const string
0290: 20 53 51 4c 49 54 45 5f 44 4c 4c 20 3d 20 22 53   SQLITE_DLL = "S
02a0: 79 73 74 65 6d 2e 44 61 74 61 2e 53 51 4c 69 74  ystem.Data.SQLit
02b0: 65 2e 44 4c 4c 22 3b 0d 0a 23 65 6c 73 65 0d 0a  e.DLL";..#else..
02c0: 20 20 20 20 69 6e 74 65 72 6e 61 6c 20 63 6f 6e      internal con
02d0: 73 74 20 73 74 72 69 6e 67 20 53 51 4c 49 54 45  st string SQLITE
02e0: 5f 44 4c 4c 20 3d 20 22 53 51 4c 69 74 65 2e 49  _DLL = "SQLite.I
02f0: 6e 74 65 72 6f 70 2e 30 36 36 2e 44 4c 4c 22 3b  nterop.066.DLL";
0300: 0d 0a 23 65 6e 64 69 66 20 2f 2f 20 50 4c 41 54  ..#endif // PLAT
0310: 46 4f 52 4d 5f 43 4f 4d 50 41 43 54 46 52 41 4d  FORM_COMPACTFRAM
0320: 45 57 4f 52 4b 0d 0a 0d 0a 23 65 6c 73 65 0d 0a  EWORK....#else..
0330: 20 20 20 20 70 72 69 76 61 74 65 20 63 6f 6e 73      private cons
0340: 74 20 73 74 72 69 6e 67 20 53 51 4c 49 54 45 5f  t string SQLITE_
0350: 44 4c 4c 20 3d 20 22 53 51 4c 69 74 65 2e 49 6e  DLL = "SQLite.In
0360: 74 65 72 6f 70 2e 44 4c 4c 22 3b 0d 0a 23 65 6e  terop.DLL";..#en
0370: 64 69 66 20 2f 2f 20 55 53 45 5f 49 4e 54 45 52  dif // USE_INTER
0380: 4f 50 5f 44 4c 4c 0d 0a 0d 0a 23 65 6c 73 65 0d  OP_DLL....#else.
0390: 0a 20 20 20 20 70 72 69 76 61 74 65 20 63 6f 6e  .    private con
03a0: 73 74 20 73 74 72 69 6e 67 20 53 51 4c 49 54 45  st string SQLITE
03b0: 5f 44 4c 4c 20 3d 20 22 73 71 6c 69 74 65 33 22  _DLL = "sqlite3"
03c0: 3b 0d 0a 23 65 6e 64 69 66 0d 0a 0d 0a 20 20 20  ;..#endif....   
03d0: 20 2f 2f 20 54 68 69 73 20 73 65 63 74 69 6f 6e   // This section
03e0: 20 75 73 65 73 20 69 6e 74 65 72 6f 70 20 63 61   uses interop ca
03f0: 6c 6c 73 20 74 68 61 74 20 61 6c 73 6f 20 66 65  lls that also fe
0400: 74 63 68 20 74 65 78 74 20 6c 65 6e 67 74 68 20  tch text length 
0410: 74 6f 20 6f 70 74 69 6d 69 7a 65 20 63 6f 6e 76  to optimize conv
0420: 65 72 73 69 6f 6e 2e 20 20 0d 0a 20 20 20 20 2f  ersion.  ..    /
0430: 2f 20 57 68 65 6e 20 75 73 69 6e 67 20 74 68 65  / When using the
0440: 20 73 74 61 6e 64 61 72 64 20 64 6c 6c 2c 20 77   standard dll, w
0450: 65 20 63 61 6e 20 72 65 70 6c 61 63 65 20 74 68  e can replace th
0460: 65 73 65 20 63 61 6c 6c 73 20 77 69 74 68 20 6e  ese calls with n
0470: 6f 72 6d 61 6c 20 73 71 6c 69 74 65 20 63 61 6c  ormal sqlite cal
0480: 6c 73 20 61 6e 64 20 64 6f 20 75 6e 6f 70 74 69  ls and do unopti
0490: 6d 69 7a 65 64 20 63 6f 6e 76 65 72 73 69 6f 6e  mized conversion
04a0: 73 20 69 6e 73 74 65 61 64 20 61 66 74 65 72 77  s instead afterw
04b0: 61 72 64 73 0d 0a 20 20 20 20 23 72 65 67 69 6f  ards..    #regio
04c0: 6e 20 69 6e 74 65 72 6f 70 20 61 64 64 65 64 20  n interop added 
04d0: 74 65 78 74 6c 65 6e 67 74 68 20 63 61 6c 6c 73  textlength calls
04e0: 0d 0a 0d 0a 23 69 66 20 21 53 51 4c 49 54 45 5f  ....#if !SQLITE_
04f0: 53 54 41 4e 44 41 52 44 0d 0a 20 20 20 20 5b 44  STANDARD..    [D
0500: 6c 6c 49 6d 70 6f 72 74 28 53 51 4c 49 54 45 5f  llImport(SQLITE_
0510: 44 4c 4c 29 5d 0d 0a 20 20 20 20 69 6e 74 65 72  DLL)]..    inter
0520: 6e 61 6c 20 73 74 61 74 69 63 20 65 78 74 65 72  nal static exter
0530: 6e 20 49 6e 74 50 74 72 20 73 71 6c 69 74 65 33  n IntPtr sqlite3
0540: 5f 62 69 6e 64 5f 70 61 72 61 6d 65 74 65 72 5f  _bind_parameter_
0550: 6e 61 6d 65 5f 69 6e 74 65 72 6f 70 28 49 6e 74  name_interop(Int
0560: 50 74 72 20 73 74 6d 74 2c 20 69 6e 74 20 69 6e  Ptr stmt, int in
0570: 64 65 78 2c 20 6f 75 74 20 69 6e 74 20 6c 65 6e  dex, out int len
0580: 29 3b 0d 0a 0d 0a 20 20 20 20 5b 44 6c 6c 49 6d  );....    [DllIm
0590: 70 6f 72 74 28 53 51 4c 49 54 45 5f 44 4c 4c 29  port(SQLITE_DLL)
05a0: 5d 0d 0a 20 20 20 20 69 6e 74 65 72 6e 61 6c 20  ]..    internal 
05b0: 73 74 61 74 69 63 20 65 78 74 65 72 6e 20 49 6e  static extern In
05c0: 74 50 74 72 20 73 71 6c 69 74 65 33 5f 63 6f 6c  tPtr sqlite3_col
05d0: 75 6d 6e 5f 64 61 74 61 62 61 73 65 5f 6e 61 6d  umn_database_nam
05e0: 65 5f 69 6e 74 65 72 6f 70 28 49 6e 74 50 74 72  e_interop(IntPtr
05f0: 20 73 74 6d 74 2c 20 69 6e 74 20 69 6e 64 65 78   stmt, int index
0600: 2c 20 6f 75 74 20 69 6e 74 20 6c 65 6e 29 3b 0d  , out int len);.
0610: 0a 0d 0a 20 20 20 20 5b 44 6c 6c 49 6d 70 6f 72  ...    [DllImpor
0620: 74 28 53 51 4c 49 54 45 5f 44 4c 4c 29 5d 0d 0a  t(SQLITE_DLL)]..
0630: 20 20 20 20 69 6e 74 65 72 6e 61 6c 20 73 74 61      internal sta
0640: 74 69 63 20 65 78 74 65 72 6e 20 49 6e 74 50 74  tic extern IntPt
0650: 72 20 73 71 6c 69 74 65 33 5f 63 6f 6c 75 6d 6e  r sqlite3_column
0660: 5f 64 61 74 61 62 61 73 65 5f 6e 61 6d 65 31 36  _database_name16
0670: 5f 69 6e 74 65 72 6f 70 28 49 6e 74 50 74 72 20  _interop(IntPtr 
0680: 73 74 6d 74 2c 20 69 6e 74 20 69 6e 64 65 78 2c  stmt, int index,
0690: 20 6f 75 74 20 69 6e 74 20 6c 65 6e 29 3b 0d 0a   out int len);..
06a0: 0d 0a 20 20 20 20 5b 44 6c 6c 49 6d 70 6f 72 74  ..    [DllImport
06b0: 28 53 51 4c 49 54 45 5f 44 4c 4c 29 5d 0d 0a 20  (SQLITE_DLL)].. 
06c0: 20 20 20 69 6e 74 65 72 6e 61 6c 20 73 74 61 74     internal stat
06d0: 69 63 20 65 78 74 65 72 6e 20 49 6e 74 50 74 72  ic extern IntPtr
06e0: 20 73 71 6c 69 74 65 33 5f 63 6f 6c 75 6d 6e 5f   sqlite3_column_
06f0: 64 65 63 6c 74 79 70 65 5f 69 6e 74 65 72 6f 70  decltype_interop
0700: 28 49 6e 74 50 74 72 20 73 74 6d 74 2c 20 69 6e  (IntPtr stmt, in
0710: 74 20 69 6e 64 65 78 2c 20 6f 75 74 20 69 6e 74  t index, out int
0720: 20 6c 65 6e 29 3b 0d 0a 0d 0a 20 20 20 20 5b 44   len);....    [D
0730: 6c 6c 49 6d 70 6f 72 74 28 53 51 4c 49 54 45 5f  llImport(SQLITE_
0740: 44 4c 4c 29 5d 0d 0a 20 20 20 20 69 6e 74 65 72  DLL)]..    inter
0750: 6e 61 6c 20 73 74 61 74 69 63 20 65 78 74 65 72  nal static exter
0760: 6e 20 49 6e 74 50 74 72 20 73 71 6c 69 74 65 33  n IntPtr sqlite3
0770: 5f 63 6f 6c 75 6d 6e 5f 64 65 63 6c 74 79 70 65  _column_decltype
0780: 31 36 5f 69 6e 74 65 72 6f 70 28 49 6e 74 50 74  16_interop(IntPt
0790: 72 20 73 74 6d 74 2c 20 69 6e 74 20 69 6e 64 65  r stmt, int inde
07a0: 78 2c 20 6f 75 74 20 69 6e 74 20 6c 65 6e 29 3b  x, out int len);
07b0: 0d 0a 0d 0a 20 20 20 20 5b 44 6c 6c 49 6d 70 6f  ....    [DllImpo
07c0: 72 74 28 53 51 4c 49 54 45 5f 44 4c 4c 29 5d 0d  rt(SQLITE_DLL)].
07d0: 0a 20 20 20 20 69 6e 74 65 72 6e 61 6c 20 73 74  .    internal st
07e0: 61 74 69 63 20 65 78 74 65 72 6e 20 49 6e 74 50  atic extern IntP
07f0: 74 72 20 73 71 6c 69 74 65 33 5f 63 6f 6c 75 6d  tr sqlite3_colum
0800: 6e 5f 6e 61 6d 65 5f 69 6e 74 65 72 6f 70 28 49  n_name_interop(I
0810: 6e 74 50 74 72 20 73 74 6d 74 2c 20 69 6e 74 20  ntPtr stmt, int 
0820: 69 6e 64 65 78 2c 20 6f 75 74 20 69 6e 74 20 6c  index, out int l
0830: 65 6e 29 3b 0d 0a 0d 0a 20 20 20 20 5b 44 6c 6c  en);....    [Dll
0840: 49 6d 70 6f 72 74 28 53 51 4c 49 54 45 5f 44 4c  Import(SQLITE_DL
0850: 4c 29 5d 0d 0a 20 20 20 20 69 6e 74 65 72 6e 61  L)]..    interna
0860: 6c 20 73 74 61 74 69 63 20 65 78 74 65 72 6e 20  l static extern 
0870: 49 6e 74 50 74 72 20 73 71 6c 69 74 65 33 5f 63  IntPtr sqlite3_c
0880: 6f 6c 75 6d 6e 5f 6e 61 6d 65 31 36 5f 69 6e 74  olumn_name16_int
0890: 65 72 6f 70 28 49 6e 74 50 74 72 20 73 74 6d 74  erop(IntPtr stmt
08a0: 2c 20 69 6e 74 20 69 6e 64 65 78 2c 20 6f 75 74  , int index, out
08b0: 20 69 6e 74 20 6c 65 6e 29 3b 0d 0a 0d 0a 20 20   int len);....  
08c0: 20 20 5b 44 6c 6c 49 6d 70 6f 72 74 28 53 51 4c    [DllImport(SQL
08d0: 49 54 45 5f 44 4c 4c 29 5d 0d 0a 20 20 20 20 69  ITE_DLL)]..    i
08e0: 6e 74 65 72 6e 61 6c 20 73 74 61 74 69 63 20 65  nternal static e
08f0: 78 74 65 72 6e 20 49 6e 74 50 74 72 20 73 71 6c  xtern IntPtr sql
0900: 69 74 65 33 5f 63 6f 6c 75 6d 6e 5f 6f 72 69 67  ite3_column_orig
0910: 69 6e 5f 6e 61 6d 65 5f 69 6e 74 65 72 6f 70 28  in_name_interop(
0920: 49 6e 74 50 74 72 20 73 74 6d 74 2c 20 69 6e 74  IntPtr stmt, int
0930: 20 69 6e 64 65 78 2c 20 6f 75 74 20 69 6e 74 20   index, out int 
0940: 6c 65 6e 29 3b 0d 0a 0d 0a 20 20 20 20 5b 44 6c  len);....    [Dl
0950: 6c 49 6d 70 6f 72 74 28 53 51 4c 49 54 45 5f 44  lImport(SQLITE_D
0960: 4c 4c 29 5d 0d 0a 20 20 20 20 69 6e 74 65 72 6e  LL)]..    intern
0970: 61 6c 20 73 74 61 74 69 63 20 65 78 74 65 72 6e  al static extern
0980: 20 49 6e 74 50 74 72 20 73 71 6c 69 74 65 33 5f   IntPtr sqlite3_
0990: 63 6f 6c 75 6d 6e 5f 6f 72 69 67 69 6e 5f 6e 61  column_origin_na
09a0: 6d 65 31 36 5f 69 6e 74 65 72 6f 70 28 49 6e 74  me16_interop(Int
09b0: 50 74 72 20 73 74 6d 74 2c 20 69 6e 74 20 69 6e  Ptr stmt, int in
09c0: 64 65 78 2c 20 6f 75 74 20 69 6e 74 20 6c 65 6e  dex, out int len
09d0: 29 3b 0d 0a 0d 0a 20 20 20 20 5b 44 6c 6c 49 6d  );....    [DllIm
09e0: 70 6f 72 74 28 53 51 4c 49 54 45 5f 44 4c 4c 29  port(SQLITE_DLL)
09f0: 5d 0d 0a 20 20 20 20 69 6e 74 65 72 6e 61 6c 20  ]..    internal 
0a00: 73 74 61 74 69 63 20 65 78 74 65 72 6e 20 49 6e  static extern In
0a10: 74 50 74 72 20 73 71 6c 69 74 65 33 5f 63 6f 6c  tPtr sqlite3_col
0a20: 75 6d 6e 5f 74 61 62 6c 65 5f 6e 61 6d 65 5f 69  umn_table_name_i
0a30: 6e 74 65 72 6f 70 28 49 6e 74 50 74 72 20 73 74  nterop(IntPtr st
0a40: 6d 74 2c 20 69 6e 74 20 69 6e 64 65 78 2c 20 6f  mt, int index, o
0a50: 75 74 20 69 6e 74 20 6c 65 6e 29 3b 0d 0a 0d 0a  ut int len);....
0a60: 20 20 20 20 5b 44 6c 6c 49 6d 70 6f 72 74 28 53      [DllImport(S
0a70: 51 4c 49 54 45 5f 44 4c 4c 29 5d 0d 0a 20 20 20  QLITE_DLL)]..   
0a80: 20 69 6e 74 65 72 6e 61 6c 20 73 74 61 74 69 63   internal static
0a90: 20 65 78 74 65 72 6e 20 49 6e 74 50 74 72 20 73   extern IntPtr s
0aa0: 71 6c 69 74 65 33 5f 63 6f 6c 75 6d 6e 5f 74 61  qlite3_column_ta
0ab0: 62 6c 65 5f 6e 61 6d 65 31 36 5f 69 6e 74 65 72  ble_name16_inter
0ac0: 6f 70 28 49 6e 74 50 74 72 20 73 74 6d 74 2c 20  op(IntPtr stmt, 
0ad0: 69 6e 74 20 69 6e 64 65 78 2c 20 6f 75 74 20 69  int index, out i
0ae0: 6e 74 20 6c 65 6e 29 3b 0d 0a 0d 0a 20 20 20 20  nt len);....    
0af0: 5b 44 6c 6c 49 6d 70 6f 72 74 28 53 51 4c 49 54  [DllImport(SQLIT
0b00: 45 5f 44 4c 4c 29 5d 0d 0a 20 20 20 20 69 6e 74  E_DLL)]..    int
0b10: 65 72 6e 61 6c 20 73 74 61 74 69 63 20 65 78 74  ernal static ext
0b20: 65 72 6e 20 49 6e 74 50 74 72 20 73 71 6c 69 74  ern IntPtr sqlit
0b30: 65 33 5f 63 6f 6c 75 6d 6e 5f 74 65 78 74 5f 69  e3_column_text_i
0b40: 6e 74 65 72 6f 70 28 49 6e 74 50 74 72 20 73 74  nterop(IntPtr st
0b50: 6d 74 2c 20 69 6e 74 20 69 6e 64 65 78 2c 20 6f  mt, int index, o
0b60: 75 74 20 69 6e 74 20 6c 65 6e 29 3b 0d 0a 0d 0a  ut int len);....
0b70: 20 20 20 20 5b 44 6c 6c 49 6d 70 6f 72 74 28 53      [DllImport(S
0b80: 51 4c 49 54 45 5f 44 4c 4c 29 5d 0d 0a 20 20 20  QLITE_DLL)]..   
0b90: 20 69 6e 74 65 72 6e 61 6c 20 73 74 61 74 69 63   internal static
0ba0: 20 65 78 74 65 72 6e 20 49 6e 74 50 74 72 20 73   extern IntPtr s
0bb0: 71 6c 69 74 65 33 5f 63 6f 6c 75 6d 6e 5f 74 65  qlite3_column_te
0bc0: 78 74 31 36 5f 69 6e 74 65 72 6f 70 28 49 6e 74  xt16_interop(Int
0bd0: 50 74 72 20 73 74 6d 74 2c 20 69 6e 74 20 69 6e  Ptr stmt, int in
0be0: 64 65 78 2c 20 6f 75 74 20 69 6e 74 20 6c 65 6e  dex, out int len
0bf0: 29 3b 0d 0a 0d 0a 20 20 20 20 5b 44 6c 6c 49 6d  );....    [DllIm
0c00: 70 6f 72 74 28 53 51 4c 49 54 45 5f 44 4c 4c 29  port(SQLITE_DLL)
0c10: 5d 0d 0a 20 20 20 20 69 6e 74 65 72 6e 61 6c 20  ]..    internal 
0c20: 73 74 61 74 69 63 20 65 78 74 65 72 6e 20 69 6e  static extern in
0c30: 74 20 73 71 6c 69 74 65 33 5f 65 78 74 65 6e 64  t sqlite3_extend
0c40: 65 64 5f 72 65 73 75 6c 74 5f 63 6f 64 65 73 5f  ed_result_codes_
0c50: 69 6e 74 65 72 6f 70 28 49 6e 74 50 74 72 20 64  interop(IntPtr d
0c60: 62 2c 20 69 6e 74 20 6f 6e 6f 66 66 29 3b 0d 0a  b, int onoff);..
0c70: 0d 0a 20 20 20 20 5b 44 6c 6c 49 6d 70 6f 72 74  ..    [DllImport
0c80: 28 53 51 4c 49 54 45 5f 44 4c 4c 29 5d 0d 0a 20  (SQLITE_DLL)].. 
0c90: 20 20 20 69 6e 74 65 72 6e 61 6c 20 73 74 61 74     internal stat
0ca0: 69 63 20 65 78 74 65 72 6e 20 69 6e 74 20 73 71  ic extern int sq
0cb0: 6c 69 74 65 33 5f 65 72 72 63 6f 64 65 5f 69 6e  lite3_errcode_in
0cc0: 74 65 72 6f 70 28 49 6e 74 50 74 72 20 64 62 29  terop(IntPtr db)
0cd0: 3b 0d 0a 0d 0a 20 20 20 20 5b 44 6c 6c 49 6d 70  ;....    [DllImp
0ce0: 6f 72 74 28 53 51 4c 49 54 45 5f 44 4c 4c 29 5d  ort(SQLITE_DLL)]
0cf0: 0d 0a 20 20 20 20 69 6e 74 65 72 6e 61 6c 20 73  ..    internal s
0d00: 74 61 74 69 63 20 65 78 74 65 72 6e 20 69 6e 74  tatic extern int
0d10: 20 73 71 6c 69 74 65 33 5f 65 78 74 65 6e 64 65   sqlite3_extende
0d20: 64 5f 65 72 72 63 6f 64 65 5f 69 6e 74 65 72 6f  d_errcode_intero
0d30: 70 28 49 6e 74 50 74 72 20 64 62 29 3b 0d 0a 0d  p(IntPtr db);...
0d40: 0a 20 20 20 20 5b 44 6c 6c 49 6d 70 6f 72 74 28  .    [DllImport(
0d50: 53 51 4c 49 54 45 5f 44 4c 4c 29 5d 0d 0a 20 20  SQLITE_DLL)]..  
0d60: 20 20 69 6e 74 65 72 6e 61 6c 20 73 74 61 74 69    internal stati
0d70: 63 20 65 78 74 65 72 6e 20 49 6e 74 50 74 72 20  c extern IntPtr 
0d80: 73 71 6c 69 74 65 33 5f 65 72 72 6d 73 67 5f 69  sqlite3_errmsg_i
0d90: 6e 74 65 72 6f 70 28 49 6e 74 50 74 72 20 64 62  nterop(IntPtr db
0da0: 2c 20 6f 75 74 20 69 6e 74 20 6c 65 6e 29 3b 0d  , out int len);.
0db0: 0a 0d 0a 20 20 20 20 5b 44 6c 6c 49 6d 70 6f 72  ...    [DllImpor
0dc0: 74 28 53 51 4c 49 54 45 5f 44 4c 4c 29 5d 0d 0a  t(SQLITE_DLL)]..
0dd0: 20 20 20 20 69 6e 74 65 72 6e 61 6c 20 73 74 61      internal sta
0de0: 74 69 63 20 65 78 74 65 72 6e 20 69 6e 74 20 73  tic extern int s
0df0: 71 6c 69 74 65 33 5f 70 72 65 70 61 72 65 5f 69  qlite3_prepare_i
0e00: 6e 74 65 72 6f 70 28 49 6e 74 50 74 72 20 64 62  nterop(IntPtr db
0e10: 2c 20 49 6e 74 50 74 72 20 70 53 71 6c 2c 20 69  , IntPtr pSql, i
0e20: 6e 74 20 6e 42 79 74 65 73 2c 20 6f 75 74 20 49  nt nBytes, out I
0e30: 6e 74 50 74 72 20 73 74 6d 74 2c 20 6f 75 74 20  ntPtr stmt, out 
0e40: 49 6e 74 50 74 72 20 70 74 72 52 65 6d 61 69 6e  IntPtr ptrRemain
0e50: 2c 20 6f 75 74 20 69 6e 74 20 6e 52 65 6d 61 69  , out int nRemai
0e60: 6e 29 3b 0d 0a 0d 0a 20 20 20 20 5b 44 6c 6c 49  n);....    [DllI
0e70: 6d 70 6f 72 74 28 53 51 4c 49 54 45 5f 44 4c 4c  mport(SQLITE_DLL
0e80: 29 5d 0d 0a 20 20 20 20 69 6e 74 65 72 6e 61 6c  )]..    internal
0e90: 20 73 74 61 74 69 63 20 65 78 74 65 72 6e 20 69   static extern i
0ea0: 6e 74 20 73 71 6c 69 74 65 33 5f 74 61 62 6c 65  nt sqlite3_table
0eb0: 5f 63 6f 6c 75 6d 6e 5f 6d 65 74 61 64 61 74 61  _column_metadata
0ec0: 5f 69 6e 74 65 72 6f 70 28 49 6e 74 50 74 72 20  _interop(IntPtr 
0ed0: 64 62 2c 20 62 79 74 65 5b 5d 20 64 62 4e 61 6d  db, byte[] dbNam
0ee0: 65 2c 20 62 79 74 65 5b 5d 20 74 62 6c 4e 61 6d  e, byte[] tblNam
0ef0: 65 2c 20 62 79 74 65 5b 5d 20 63 6f 6c 4e 61 6d  e, byte[] colNam
0f00: 65 2c 20 6f 75 74 20 49 6e 74 50 74 72 20 70 74  e, out IntPtr pt
0f10: 72 44 61 74 61 54 79 70 65 2c 20 6f 75 74 20 49  rDataType, out I
0f20: 6e 74 50 74 72 20 70 74 72 43 6f 6c 6c 53 65 71  ntPtr ptrCollSeq
0f30: 2c 20 6f 75 74 20 69 6e 74 20 6e 6f 74 4e 75 6c  , out int notNul
0f40: 6c 2c 20 6f 75 74 20 69 6e 74 20 70 72 69 6d 61  l, out int prima
0f50: 72 79 4b 65 79 2c 20 6f 75 74 20 69 6e 74 20 61  ryKey, out int a
0f60: 75 74 6f 49 6e 63 2c 20 6f 75 74 20 69 6e 74 20  utoInc, out int 
0f70: 64 74 4c 65 6e 2c 20 6f 75 74 20 69 6e 74 20 63  dtLen, out int c
0f80: 73 4c 65 6e 29 3b 0d 0a 0d 0a 20 20 20 20 5b 44  sLen);....    [D
0f90: 6c 6c 49 6d 70 6f 72 74 28 53 51 4c 49 54 45 5f  llImport(SQLITE_
0fa0: 44 4c 4c 29 5d 0d 0a 20 20 20 20 69 6e 74 65 72  DLL)]..    inter
0fb0: 6e 61 6c 20 73 74 61 74 69 63 20 65 78 74 65 72  nal static exter
0fc0: 6e 20 49 6e 74 50 74 72 20 73 71 6c 69 74 65 33  n IntPtr sqlite3
0fd0: 5f 76 61 6c 75 65 5f 74 65 78 74 5f 69 6e 74 65  _value_text_inte
0fe0: 72 6f 70 28 49 6e 74 50 74 72 20 70 2c 20 6f 75  rop(IntPtr p, ou
0ff0: 74 20 69 6e 74 20 6c 65 6e 29 3b 0d 0a 0d 0a 20  t int len);.... 
1000: 20 20 20 5b 44 6c 6c 49 6d 70 6f 72 74 28 53 51     [DllImport(SQ
1010: 4c 49 54 45 5f 44 4c 4c 29 5d 0d 0a 20 20 20 20  LITE_DLL)]..    
1020: 69 6e 74 65 72 6e 61 6c 20 73 74 61 74 69 63 20  internal static 
1030: 65 78 74 65 72 6e 20 49 6e 74 50 74 72 20 73 71  extern IntPtr sq
1040: 6c 69 74 65 33 5f 76 61 6c 75 65 5f 74 65 78 74  lite3_value_text
1050: 31 36 5f 69 6e 74 65 72 6f 70 28 49 6e 74 50 74  16_interop(IntPt
1060: 72 20 70 2c 20 6f 75 74 20 69 6e 74 20 6c 65 6e  r p, out int len
1070: 29 3b 0d 0a 23 65 6e 64 69 66 0d 0a 0d 0a 20 20  );..#endif....  
1080: 20 20 23 65 6e 64 72 65 67 69 6f 6e 0d 0a 0d 0a    #endregion....
1090: 20 20 20 20 2f 2f 20 54 68 65 73 65 20 66 75 6e      // These fun
10a0: 63 74 69 6f 6e 73 20 61 64 64 20 65 78 69 73 74  ctions add exist
10b0: 69 6e 67 20 66 75 6e 63 74 69 6f 6e 61 6c 69 74  ing functionalit
10c0: 79 20 6f 6e 20 74 6f 70 20 6f 66 20 53 51 4c 69  y on top of SQLi
10d0: 74 65 20 61 6e 64 20 72 65 71 75 69 72 65 20 61  te and require a
10e0: 20 6c 69 74 74 6c 65 20 65 66 66 6f 72 74 20 74   little effort t
10f0: 6f 0d 0a 20 20 20 20 2f 2f 20 67 65 74 20 77 6f  o..    // get wo
1100: 72 6b 69 6e 67 20 77 68 65 6e 20 75 73 69 6e 67  rking when using
1110: 20 74 68 65 20 73 74 61 6e 64 61 72 64 20 53 51   the standard SQ
1120: 4c 69 74 65 20 6c 69 62 72 61 72 79 2e 0d 0a 20  Lite library... 
1130: 20 20 20 23 72 65 67 69 6f 6e 20 69 6e 74 65 72     #region inter
1140: 6f 70 20 61 64 64 65 64 20 66 75 6e 63 74 69 6f  op added functio
1150: 6e 61 6c 69 74 79 0d 0a 0d 0a 23 69 66 20 21 53  nality....#if !S
1160: 51 4c 49 54 45 5f 53 54 41 4e 44 41 52 44 0d 0a  QLITE_STANDARD..
1170: 20 20 20 20 5b 44 6c 6c 49 6d 70 6f 72 74 28 53      [DllImport(S
1180: 51 4c 49 54 45 5f 44 4c 4c 29 5d 0d 0a 20 20 20  QLITE_DLL)]..   
1190: 20 69 6e 74 65 72 6e 61 6c 20 73 74 61 74 69 63   internal static
11a0: 20 65 78 74 65 72 6e 20 69 6e 74 20 73 71 6c 69   extern int sqli
11b0: 74 65 33 5f 63 6c 6f 73 65 5f 69 6e 74 65 72 6f  te3_close_intero
11c0: 70 28 49 6e 74 50 74 72 20 64 62 29 3b 0d 0a 0d  p(IntPtr db);...
11d0: 0a 20 20 20 20 5b 44 6c 6c 49 6d 70 6f 72 74 28  .    [DllImport(
11e0: 53 51 4c 49 54 45 5f 44 4c 4c 29 5d 0d 0a 20 20  SQLITE_DLL)]..  
11f0: 20 20 69 6e 74 65 72 6e 61 6c 20 73 74 61 74 69    internal stati
1200: 63 20 65 78 74 65 72 6e 20 69 6e 74 20 73 71 6c  c extern int sql
1210: 69 74 65 33 5f 63 72 65 61 74 65 5f 66 75 6e 63  ite3_create_func
1220: 74 69 6f 6e 5f 69 6e 74 65 72 6f 70 28 49 6e 74  tion_interop(Int
1230: 50 74 72 20 64 62 2c 20 62 79 74 65 5b 5d 20 73  Ptr db, byte[] s
1240: 74 72 4e 61 6d 65 2c 20 69 6e 74 20 6e 41 72 67  trName, int nArg
1250: 73 2c 20 69 6e 74 20 6e 54 79 70 65 2c 20 49 6e  s, int nType, In
1260: 74 50 74 72 20 70 76 55 73 65 72 2c 20 53 51 4c  tPtr pvUser, SQL
1270: 69 74 65 43 61 6c 6c 62 61 63 6b 20 66 75 6e 63  iteCallback func
1280: 2c 20 53 51 4c 69 74 65 43 61 6c 6c 62 61 63 6b  , SQLiteCallback
1290: 20 66 73 74 65 70 2c 20 53 51 4c 69 74 65 46 69   fstep, SQLiteFi
12a0: 6e 61 6c 43 61 6c 6c 62 61 63 6b 20 66 66 69 6e  nalCallback ffin
12b0: 61 6c 2c 20 69 6e 74 20 6e 65 65 64 43 6f 6c 6c  al, int needColl
12c0: 53 65 71 29 3b 0d 0a 0d 0a 20 20 20 20 5b 44 6c  Seq);....    [Dl
12d0: 6c 49 6d 70 6f 72 74 28 53 51 4c 49 54 45 5f 44  lImport(SQLITE_D
12e0: 4c 4c 29 5d 0d 0a 20 20 20 20 69 6e 74 65 72 6e  LL)]..    intern
12f0: 61 6c 20 73 74 61 74 69 63 20 65 78 74 65 72 6e  al static extern
1300: 20 69 6e 74 20 73 71 6c 69 74 65 33 5f 66 69 6e   int sqlite3_fin
1310: 61 6c 69 7a 65 5f 69 6e 74 65 72 6f 70 28 49 6e  alize_interop(In
1320: 74 50 74 72 20 73 74 6d 74 29 3b 0d 0a 0d 0a 20  tPtr stmt);.... 
1330: 20 20 20 5b 44 6c 6c 49 6d 70 6f 72 74 28 53 51     [DllImport(SQ
1340: 4c 49 54 45 5f 44 4c 4c 29 5d 0d 0a 20 20 20 20  LITE_DLL)]..    
1350: 69 6e 74 65 72 6e 61 6c 20 73 74 61 74 69 63 20  internal static 
1360: 65 78 74 65 72 6e 20 69 6e 74 20 73 71 6c 69 74  extern int sqlit
1370: 65 33 5f 6f 70 65 6e 5f 69 6e 74 65 72 6f 70 28  e3_open_interop(
1380: 62 79 74 65 5b 5d 20 75 74 66 38 46 69 6c 65 6e  byte[] utf8Filen
1390: 61 6d 65 2c 20 69 6e 74 20 66 6c 61 67 73 2c 20  ame, int flags, 
13a0: 6f 75 74 20 49 6e 74 50 74 72 20 64 62 29 3b 0d  out IntPtr db);.
13b0: 0a 0d 0a 20 20 20 20 5b 44 6c 6c 49 6d 70 6f 72  ...    [DllImpor
13c0: 74 28 53 51 4c 49 54 45 5f 44 4c 4c 29 5d 0d 0a  t(SQLITE_DLL)]..
13d0: 20 20 20 20 69 6e 74 65 72 6e 61 6c 20 73 74 61      internal sta
13e0: 74 69 63 20 65 78 74 65 72 6e 20 69 6e 74 20 73  tic extern int s
13f0: 71 6c 69 74 65 33 5f 6f 70 65 6e 31 36 5f 69 6e  qlite3_open16_in
1400: 74 65 72 6f 70 28 62 79 74 65 5b 5d 20 75 74 66  terop(byte[] utf
1410: 38 46 69 6c 65 6e 61 6d 65 2c 20 69 6e 74 20 66  8Filename, int f
1420: 6c 61 67 73 2c 20 6f 75 74 20 49 6e 74 50 74 72  lags, out IntPtr
1430: 20 64 62 29 3b 0d 0a 0d 0a 20 20 20 20 5b 44 6c   db);....    [Dl
1440: 6c 49 6d 70 6f 72 74 28 53 51 4c 49 54 45 5f 44  lImport(SQLITE_D
1450: 4c 4c 29 5d 0d 0a 20 20 20 20 69 6e 74 65 72 6e  LL)]..    intern
1460: 61 6c 20 73 74 61 74 69 63 20 65 78 74 65 72 6e  al static extern
1470: 20 69 6e 74 20 73 71 6c 69 74 65 33 5f 72 65 73   int sqlite3_res
1480: 65 74 5f 69 6e 74 65 72 6f 70 28 49 6e 74 50 74  et_interop(IntPt
1490: 72 20 73 74 6d 74 29 3b 0d 0a 0d 0a 23 65 6e 64  r stmt);....#end
14a0: 69 66 0d 0a 0d 0a 20 20 20 20 23 65 6e 64 72 65  if....    #endre
14b0: 67 69 6f 6e 0d 0a 0d 0a 20 20 20 20 2f 2f 20 54  gion....    // T
14c0: 68 65 20 73 74 61 6e 64 61 72 64 20 61 70 69 20  he standard api 
14d0: 63 61 6c 6c 20 65 71 75 69 76 61 6c 65 6e 74 73  call equivalents
14e0: 20 6f 66 20 74 68 65 20 61 62 6f 76 65 20 69 6e   of the above in
14f0: 74 65 72 6f 70 20 63 61 6c 6c 73 0d 0a 20 20 20  terop calls..   
1500: 20 23 72 65 67 69 6f 6e 20 73 74 61 6e 64 61 72   #region standar
1510: 64 20 76 65 72 73 69 6f 6e 73 20 6f 66 20 69 6e  d versions of in
1520: 74 65 72 6f 70 20 66 75 6e 63 74 69 6f 6e 73 0d  terop functions.
1530: 0a 0d 0a 23 69 66 20 53 51 4c 49 54 45 5f 53 54  ...#if SQLITE_ST
1540: 41 4e 44 41 52 44 0d 0a 23 69 66 20 21 50 4c 41  ANDARD..#if !PLA
1550: 54 46 4f 52 4d 5f 43 4f 4d 50 41 43 54 46 52 41  TFORM_COMPACTFRA
1560: 4d 45 57 4f 52 4b 0d 0a 20 20 20 20 5b 44 6c 6c  MEWORK..    [Dll
1570: 49 6d 70 6f 72 74 28 53 51 4c 49 54 45 5f 44 4c  Import(SQLITE_DL
1580: 4c 2c 20 43 61 6c 6c 69 6e 67 43 6f 6e 76 65 6e  L, CallingConven
1590: 74 69 6f 6e 20 3d 20 43 61 6c 6c 69 6e 67 43 6f  tion = CallingCo
15a0: 6e 76 65 6e 74 69 6f 6e 2e 43 64 65 63 6c 29 5d  nvention.Cdecl)]
15b0: 0d 0a 23 65 6c 73 65 0d 0a 20 20 20 20 5b 44 6c  ..#else..    [Dl
15c0: 6c 49 6d 70 6f 72 74 28 53 51 4c 49 54 45 5f 44  lImport(SQLITE_D
15d0: 4c 4c 29 5d 0d 0a 23 65 6e 64 69 66 0d 0a 20 20  LL)]..#endif..  
15e0: 20 20 69 6e 74 65 72 6e 61 6c 20 73 74 61 74 69    internal stati
15f0: 63 20 65 78 74 65 72 6e 20 69 6e 74 20 73 71 6c  c extern int sql
1600: 69 74 65 33 5f 63 6c 6f 73 65 28 49 6e 74 50 74  ite3_close(IntPt
1610: 72 20 64 62 29 3b 0d 0a 0d 0a 23 69 66 20 21 50  r db);....#if !P
1620: 4c 41 54 46 4f 52 4d 5f 43 4f 4d 50 41 43 54 46  LATFORM_COMPACTF
1630: 52 41 4d 45 57 4f 52 4b 0d 0a 20 20 20 20 5b 44  RAMEWORK..    [D
1640: 6c 6c 49 6d 70 6f 72 74 28 53 51 4c 49 54 45 5f  llImport(SQLITE_
1650: 44 4c 4c 2c 20 43 61 6c 6c 69 6e 67 43 6f 6e 76  DLL, CallingConv
1660: 65 6e 74 69 6f 6e 20 3d 20 43 61 6c 6c 69 6e 67  ention = Calling
1670: 43 6f 6e 76 65 6e 74 69 6f 6e 2e 43 64 65 63 6c  Convention.Cdecl
1680: 29 5d 0d 0a 23 65 6c 73 65 0d 0a 20 20 20 20 5b  )]..#else..    [
1690: 44 6c 6c 49 6d 70 6f 72 74 28 53 51 4c 49 54 45  DllImport(SQLITE
16a0: 5f 44 4c 4c 29 5d 0d 0a 23 65 6e 64 69 66 0d 0a  _DLL)]..#endif..
16b0: 20 20 20 20 69 6e 74 65 72 6e 61 6c 20 73 74 61      internal sta
16c0: 74 69 63 20 65 78 74 65 72 6e 20 69 6e 74 20 73  tic extern int s
16d0: 71 6c 69 74 65 33 5f 63 72 65 61 74 65 5f 66 75  qlite3_create_fu
16e0: 6e 63 74 69 6f 6e 28 49 6e 74 50 74 72 20 64 62  nction(IntPtr db
16f0: 2c 20 62 79 74 65 5b 5d 20 73 74 72 4e 61 6d 65  , byte[] strName
1700: 2c 20 69 6e 74 20 6e 41 72 67 73 2c 20 69 6e 74  , int nArgs, int
1710: 20 6e 54 79 70 65 2c 20 49 6e 74 50 74 72 20 70   nType, IntPtr p
1720: 76 55 73 65 72 2c 20 53 51 4c 69 74 65 43 61 6c  vUser, SQLiteCal
1730: 6c 62 61 63 6b 20 66 75 6e 63 2c 20 53 51 4c 69  lback func, SQLi
1740: 74 65 43 61 6c 6c 62 61 63 6b 20 66 73 74 65 70  teCallback fstep
1750: 2c 20 53 51 4c 69 74 65 46 69 6e 61 6c 43 61 6c  , SQLiteFinalCal
1760: 6c 62 61 63 6b 20 66 66 69 6e 61 6c 29 3b 0d 0a  lback ffinal);..
1770: 0d 0a 23 69 66 20 21 50 4c 41 54 46 4f 52 4d 5f  ..#if !PLATFORM_
1780: 43 4f 4d 50 41 43 54 46 52 41 4d 45 57 4f 52 4b  COMPACTFRAMEWORK
1790: 0d 0a 20 20 20 20 5b 44 6c 6c 49 6d 70 6f 72 74  ..    [DllImport
17a0: 28 53 51 4c 49 54 45 5f 44 4c 4c 2c 20 43 61 6c  (SQLITE_DLL, Cal
17b0: 6c 69 6e 67 43 6f 6e 76 65 6e 74 69 6f 6e 20 3d  lingConvention =
17c0: 20 43 61 6c 6c 69 6e 67 43 6f 6e 76 65 6e 74 69   CallingConventi
17d0: 6f 6e 2e 43 64 65 63 6c 29 5d 0d 0a 23 65 6c 73  on.Cdecl)]..#els
17e0: 65 0d 0a 20 20 20 20 5b 44 6c 6c 49 6d 70 6f 72  e..    [DllImpor
17f0: 74 28 53 51 4c 49 54 45 5f 44 4c 4c 29 5d 0d 0a  t(SQLITE_DLL)]..
1800: 23 65 6e 64 69 66 0d 0a 20 20 20 20 69 6e 74 65  #endif..    inte
1810: 72 6e 61 6c 20 73 74 61 74 69 63 20 65 78 74 65  rnal static exte
1820: 72 6e 20 69 6e 74 20 73 71 6c 69 74 65 33 5f 66  rn int sqlite3_f
1830: 69 6e 61 6c 69 7a 65 28 49 6e 74 50 74 72 20 73  inalize(IntPtr s
1840: 74 6d 74 29 3b 0d 0a 0d 0a 23 69 66 20 21 50 4c  tmt);....#if !PL
1850: 41 54 46 4f 52 4d 5f 43 4f 4d 50 41 43 54 46 52  ATFORM_COMPACTFR
1860: 41 4d 45 57 4f 52 4b 0d 0a 20 20 20 20 5b 44 6c  AMEWORK..    [Dl
1870: 6c 49 6d 70 6f 72 74 28 53 51 4c 49 54 45 5f 44  lImport(SQLITE_D
1880: 4c 4c 2c 20 43 61 6c 6c 69 6e 67 43 6f 6e 76 65  LL, CallingConve
1890: 6e 74 69 6f 6e 20 3d 20 43 61 6c 6c 69 6e 67 43  ntion = CallingC
18a0: 6f 6e 76 65 6e 74 69 6f 6e 2e 43 64 65 63 6c 29  onvention.Cdecl)
18b0: 5d 0d 0a 23 65 6c 73 65 0d 0a 20 20 20 20 5b 44  ]..#else..    [D
18c0: 6c 6c 49 6d 70 6f 72 74 28 53 51 4c 49 54 45 5f  llImport(SQLITE_
18d0: 44 4c 4c 29 5d 0d 0a 23 65 6e 64 69 66 0d 0a 20  DLL)]..#endif.. 
18e0: 20 20 20 69 6e 74 65 72 6e 61 6c 20 73 74 61 74     internal stat
18f0: 69 63 20 65 78 74 65 72 6e 20 69 6e 74 20 73 71  ic extern int sq
1900: 6c 69 74 65 33 5f 6f 70 65 6e 5f 76 32 28 62 79  lite3_open_v2(by
1910: 74 65 5b 5d 20 75 74 66 38 46 69 6c 65 6e 61 6d  te[] utf8Filenam
1920: 65 2c 20 6f 75 74 20 49 6e 74 50 74 72 20 64 62  e, out IntPtr db
1930: 2c 20 69 6e 74 20 66 6c 61 67 73 2c 20 49 6e 74  , int flags, Int
1940: 50 74 72 20 76 66 73 29 3b 0d 0a 0d 0a 23 69 66  Ptr vfs);....#if
1950: 20 21 50 4c 41 54 46 4f 52 4d 5f 43 4f 4d 50 41   !PLATFORM_COMPA
1960: 43 54 46 52 41 4d 45 57 4f 52 4b 0d 0a 20 20 20  CTFRAMEWORK..   
1970: 20 5b 44 6c 6c 49 6d 70 6f 72 74 28 53 51 4c 49   [DllImport(SQLI
1980: 54 45 5f 44 4c 4c 2c 20 43 61 6c 6c 69 6e 67 43  TE_DLL, CallingC
1990: 6f 6e 76 65 6e 74 69 6f 6e 20 3d 20 43 61 6c 6c  onvention = Call
19a0: 69 6e 67 43 6f 6e 76 65 6e 74 69 6f 6e 2e 43 64  ingConvention.Cd
19b0: 65 63 6c 2c 20 43 68 61 72 53 65 74 20 3d 20 43  ecl, CharSet = C
19c0: 68 61 72 53 65 74 2e 55 6e 69 63 6f 64 65 29 5d  harSet.Unicode)]
19d0: 0d 0a 23 65 6c 73 65 0d 0a 20 20 20 20 5b 44 6c  ..#else..    [Dl
19e0: 6c 49 6d 70 6f 72 74 28 53 51 4c 49 54 45 5f 44  lImport(SQLITE_D
19f0: 4c 4c 2c 20 43 68 61 72 53 65 74 20 3d 20 43 68  LL, CharSet = Ch
1a00: 61 72 53 65 74 2e 55 6e 69 63 6f 64 65 29 5d 0d  arSet.Unicode)].
1a10: 0a 23 65 6e 64 69 66 0d 0a 20 20 20 20 69 6e 74  .#endif..    int
1a20: 65 72 6e 61 6c 20 73 74 61 74 69 63 20 65 78 74  ernal static ext
1a30: 65 72 6e 20 69 6e 74 20 73 71 6c 69 74 65 33 5f  ern int sqlite3_
1a40: 6f 70 65 6e 31 36 28 73 74 72 69 6e 67 20 66 69  open16(string fi
1a50: 6c 65 4e 61 6d 65 2c 20 6f 75 74 20 49 6e 74 50  leName, out IntP
1a60: 74 72 20 64 62 29 3b 0d 0a 0d 0a 23 69 66 20 21  tr db);....#if !
1a70: 50 4c 41 54 46 4f 52 4d 5f 43 4f 4d 50 41 43 54  PLATFORM_COMPACT
1a80: 46 52 41 4d 45 57 4f 52 4b 0d 0a 20 20 20 20 5b  FRAMEWORK..    [
1a90: 44 6c 6c 49 6d 70 6f 72 74 28 53 51 4c 49 54 45  DllImport(SQLITE
1aa0: 5f 44 4c 4c 2c 20 43 61 6c 6c 69 6e 67 43 6f 6e  _DLL, CallingCon
1ab0: 76 65 6e 74 69 6f 6e 20 3d 20 43 61 6c 6c 69 6e  vention = Callin
1ac0: 67 43 6f 6e 76 65 6e 74 69 6f 6e 2e 43 64 65 63  gConvention.Cdec
1ad0: 6c 29 5d 0d 0a 23 65 6c 73 65 0d 0a 20 20 20 20  l)]..#else..    
1ae0: 5b 44 6c 6c 49 6d 70 6f 72 74 28 53 51 4c 49 54  [DllImport(SQLIT
1af0: 45 5f 44 4c 4c 29 5d 0d 0a 23 65 6e 64 69 66 0d  E_DLL)]..#endif.
1b00: 0a 20 20 20 20 69 6e 74 65 72 6e 61 6c 20 73 74  .    internal st
1b10: 61 74 69 63 20 65 78 74 65 72 6e 20 69 6e 74 20  atic extern int 
1b20: 73 71 6c 69 74 65 33 5f 72 65 73 65 74 28 49 6e  sqlite3_reset(In
1b30: 74 50 74 72 20 73 74 6d 74 29 3b 0d 0a 0d 0a 23  tPtr stmt);....#
1b40: 69 66 20 21 50 4c 41 54 46 4f 52 4d 5f 43 4f 4d  if !PLATFORM_COM
1b50: 50 41 43 54 46 52 41 4d 45 57 4f 52 4b 0d 0a 20  PACTFRAMEWORK.. 
1b60: 20 20 20 5b 44 6c 6c 49 6d 70 6f 72 74 28 53 51     [DllImport(SQ
1b70: 4c 49 54 45 5f 44 4c 4c 2c 20 43 61 6c 6c 69 6e  LITE_DLL, Callin
1b80: 67 43 6f 6e 76 65 6e 74 69 6f 6e 20 3d 20 43 61  gConvention = Ca
1b90: 6c 6c 69 6e 67 43 6f 6e 76 65 6e 74 69 6f 6e 2e  llingConvention.
1ba0: 43 64 65 63 6c 29 5d 0d 0a 23 65 6c 73 65 0d 0a  Cdecl)]..#else..
1bb0: 20 20 20 20 5b 44 6c 6c 49 6d 70 6f 72 74 28 53      [DllImport(S
1bc0: 51 4c 49 54 45 5f 44 4c 4c 29 5d 0d 0a 23 65 6e  QLITE_DLL)]..#en
1bd0: 64 69 66 0d 0a 20 20 20 20 69 6e 74 65 72 6e 61  dif..    interna
1be0: 6c 20 73 74 61 74 69 63 20 65 78 74 65 72 6e 20  l static extern 
1bf0: 49 6e 74 50 74 72 20 73 71 6c 69 74 65 33 5f 62  IntPtr sqlite3_b
1c00: 69 6e 64 5f 70 61 72 61 6d 65 74 65 72 5f 6e 61  ind_parameter_na
1c10: 6d 65 28 49 6e 74 50 74 72 20 73 74 6d 74 2c 20  me(IntPtr stmt, 
1c20: 69 6e 74 20 69 6e 64 65 78 29 3b 0d 0a 0d 0a 23  int index);....#
1c30: 69 66 20 21 50 4c 41 54 46 4f 52 4d 5f 43 4f 4d  if !PLATFORM_COM
1c40: 50 41 43 54 46 52 41 4d 45 57 4f 52 4b 0d 0a 20  PACTFRAMEWORK.. 
1c50: 20 20 20 5b 44 6c 6c 49 6d 70 6f 72 74 28 53 51     [DllImport(SQ
1c60: 4c 49 54 45 5f 44 4c 4c 2c 20 43 61 6c 6c 69 6e  LITE_DLL, Callin
1c70: 67 43 6f 6e 76 65 6e 74 69 6f 6e 20 3d 20 43 61  gConvention = Ca
1c80: 6c 6c 69 6e 67 43 6f 6e 76 65 6e 74 69 6f 6e 2e  llingConvention.
1c90: 43 64 65 63 6c 29 5d 0d 0a 23 65 6c 73 65 0d 0a  Cdecl)]..#else..
1ca0: 20 20 20 20 5b 44 6c 6c 49 6d 70 6f 72 74 28 53      [DllImport(S
1cb0: 51 4c 49 54 45 5f 44 4c 4c 29 5d 0d 0a 23 65 6e  QLITE_DLL)]..#en
1cc0: 64 69 66 0d 0a 20 20 20 20 69 6e 74 65 72 6e 61  dif..    interna
1cd0: 6c 20 73 74 61 74 69 63 20 65 78 74 65 72 6e 20  l static extern 
1ce0: 49 6e 74 50 74 72 20 73 71 6c 69 74 65 33 5f 63  IntPtr sqlite3_c
1cf0: 6f 6c 75 6d 6e 5f 64 61 74 61 62 61 73 65 5f 6e  olumn_database_n
1d00: 61 6d 65 28 49 6e 74 50 74 72 20 73 74 6d 74 2c  ame(IntPtr stmt,
1d10: 20 69 6e 74 20 69 6e 64 65 78 29 3b 0d 0a 0d 0a   int index);....
1d20: 23 69 66 20 21 50 4c 41 54 46 4f 52 4d 5f 43 4f  #if !PLATFORM_CO
1d30: 4d 50 41 43 54 46 52 41 4d 45 57 4f 52 4b 0d 0a  MPACTFRAMEWORK..
1d40: 20 20 20 20 5b 44 6c 6c 49 6d 70 6f 72 74 28 53      [DllImport(S
1d50: 51 4c 49 54 45 5f 44 4c 4c 2c 20 43 61 6c 6c 69  QLITE_DLL, Calli
1d60: 6e 67 43 6f 6e 76 65 6e 74 69 6f 6e 20 3d 20 43  ngConvention = C
1d70: 61 6c 6c 69 6e 67 43 6f 6e 76 65 6e 74 69 6f 6e  allingConvention
1d80: 2e 43 64 65 63 6c 29 5d 0d 0a 23 65 6c 73 65 0d  .Cdecl)]..#else.
1d90: 0a 20 20 20 20 5b 44 6c 6c 49 6d 70 6f 72 74 28  .    [DllImport(
1da0: 53 51 4c 49 54 45 5f 44 4c 4c 29 5d 0d 0a 23 65  SQLITE_DLL)]..#e
1db0: 6e 64 69 66 0d 0a 20 20 20 20 69 6e 74 65 72 6e  ndif..    intern
1dc0: 61 6c 20 73 74 61 74 69 63 20 65 78 74 65 72 6e  al static extern
1dd0: 20 49 6e 74 50 74 72 20 73 71 6c 69 74 65 33 5f   IntPtr sqlite3_
1de0: 63 6f 6c 75 6d 6e 5f 64 61 74 61 62 61 73 65 5f  column_database_
1df0: 6e 61 6d 65 31 36 28 49 6e 74 50 74 72 20 73 74  name16(IntPtr st
1e00: 6d 74 2c 20 69 6e 74 20 69 6e 64 65 78 29 3b 0d  mt, int index);.
1e10: 0a 0d 0a 23 69 66 20 21 50 4c 41 54 46 4f 52 4d  ...#if !PLATFORM
1e20: 5f 43 4f 4d 50 41 43 54 46 52 41 4d 45 57 4f 52  _COMPACTFRAMEWOR
1e30: 4b 0d 0a 20 20 20 20 5b 44 6c 6c 49 6d 70 6f 72  K..    [DllImpor
1e40: 74 28 53 51 4c 49 54 45 5f 44 4c 4c 2c 20 43 61  t(SQLITE_DLL, Ca
1e50: 6c 6c 69 6e 67 43 6f 6e 76 65 6e 74 69 6f 6e 20  llingConvention 
1e60: 3d 20 43 61 6c 6c 69 6e 67 43 6f 6e 76 65 6e 74  = CallingConvent
1e70: 69 6f 6e 2e 43 64 65 63 6c 29 5d 0d 0a 23 65 6c  ion.Cdecl)]..#el
1e80: 73 65 0d 0a 20 20 20 20 5b 44 6c 6c 49 6d 70 6f  se..    [DllImpo
1e90: 72 74 28 53 51 4c 49 54 45 5f 44 4c 4c 29 5d 0d  rt(SQLITE_DLL)].
1ea0: 0a 23 65 6e 64 69 66 0d 0a 20 20 20 20 69 6e 74  .#endif..    int
1eb0: 65 72 6e 61 6c 20 73 74 61 74 69 63 20 65 78 74  ernal static ext
1ec0: 65 72 6e 20 49 6e 74 50 74 72 20 73 71 6c 69 74  ern IntPtr sqlit
1ed0: 65 33 5f 63 6f 6c 75 6d 6e 5f 64 65 63 6c 74 79  e3_column_declty
1ee0: 70 65 28 49 6e 74 50 74 72 20 73 74 6d 74 2c 20  pe(IntPtr stmt, 
1ef0: 69 6e 74 20 69 6e 64 65 78 29 3b 0d 0a 0d 0a 23  int index);....#
1f00: 69 66 20 21 50 4c 41 54 46 4f 52 4d 5f 43 4f 4d  if !PLATFORM_COM
1f10: 50 41 43 54 46 52 41 4d 45 57 4f 52 4b 0d 0a 20  PACTFRAMEWORK.. 
1f20: 20 20 20 5b 44 6c 6c 49 6d 70 6f 72 74 28 53 51     [DllImport(SQ
1f30: 4c 49 54 45 5f 44 4c 4c 2c 20 43 61 6c 6c 69 6e  LITE_DLL, Callin
1f40: 67 43 6f 6e 76 65 6e 74 69 6f 6e 20 3d 20 43 61  gConvention = Ca
1f50: 6c 6c 69 6e 67 43 6f 6e 76 65 6e 74 69 6f 6e 2e  llingConvention.
1f60: 43 64 65 63 6c 29 5d 0d 0a 23 65 6c 73 65 0d 0a  Cdecl)]..#else..
1f70: 20 20 20 20 5b 44 6c 6c 49 6d 70 6f 72 74 28 53      [DllImport(S
1f80: 51 4c 49 54 45 5f 44 4c 4c 29 5d 0d 0a 23 65 6e  QLITE_DLL)]..#en
1f90: 64 69 66 0d 0a 20 20 20 20 69 6e 74 65 72 6e 61  dif..    interna
1fa0: 6c 20 73 74 61 74 69 63 20 65 78 74 65 72 6e 20  l static extern 
1fb0: 49 6e 74 50 74 72 20 73 71 6c 69 74 65 33 5f 63  IntPtr sqlite3_c
1fc0: 6f 6c 75 6d 6e 5f 64 65 63 6c 74 79 70 65 31 36  olumn_decltype16
1fd0: 28 49 6e 74 50 74 72 20 73 74 6d 74 2c 20 69 6e  (IntPtr stmt, in
1fe0: 74 20 69 6e 64 65 78 29 3b 0d 0a 0d 0a 23 69 66  t index);....#if
1ff0: 20 21 50 4c 41 54 46 4f 52 4d 5f 43 4f 4d 50 41   !PLATFORM_COMPA
2000: 43 54 46 52 41 4d 45 57 4f 52 4b 0d 0a 20 20 20  CTFRAMEWORK..   
2010: 20 5b 44 6c 6c 49 6d 70 6f 72 74 28 53 51 4c 49   [DllImport(SQLI
2020: 54 45 5f 44 4c 4c 2c 20 43 61 6c 6c 69 6e 67 43  TE_DLL, CallingC
2030: 6f 6e 76 65 6e 74 69 6f 6e 20 3d 20 43 61 6c 6c  onvention = Call
2040: 69 6e 67 43 6f 6e 76 65 6e 74 69 6f 6e 2e 43 64  ingConvention.Cd
2050: 65 63 6c 29 5d 0d 0a 23 65 6c 73 65 0d 0a 20 20  ecl)]..#else..  
2060: 20 20 5b 44 6c 6c 49 6d 70 6f 72 74 28 53 51 4c    [DllImport(SQL
2070: 49 54 45 5f 44 4c 4c 29 5d 0d 0a 23 65 6e 64 69  ITE_DLL)]..#endi
2080: 66 0d 0a 20 20 20 20 69 6e 74 65 72 6e 61 6c 20  f..    internal 
2090: 73 74 61 74 69 63 20 65 78 74 65 72 6e 20 49 6e  static extern In
20a0: 74 50 74 72 20 73 71 6c 69 74 65 33 5f 63 6f 6c  tPtr sqlite3_col
20b0: 75 6d 6e 5f 6e 61 6d 65 28 49 6e 74 50 74 72 20  umn_name(IntPtr 
20c0: 73 74 6d 74 2c 20 69 6e 74 20 69 6e 64 65 78 29  stmt, int index)
20d0: 3b 0d 0a 0d 0a 23 69 66 20 21 50 4c 41 54 46 4f  ;....#if !PLATFO
20e0: 52 4d 5f 43 4f 4d 50 41 43 54 46 52 41 4d 45 57  RM_COMPACTFRAMEW
20f0: 4f 52 4b 0d 0a 20 20 20 20 5b 44 6c 6c 49 6d 70  ORK..    [DllImp
2100: 6f 72 74 28 53 51 4c 49 54 45 5f 44 4c 4c 2c 20  ort(SQLITE_DLL, 
2110: 43 61 6c 6c 69 6e 67 43 6f 6e 76 65 6e 74 69 6f  CallingConventio
2120: 6e 20 3d 20 43 61 6c 6c 69 6e 67 43 6f 6e 76 65  n = CallingConve
2130: 6e 74 69 6f 6e 2e 43 64 65 63 6c 29 5d 0d 0a 23  ntion.Cdecl)]..#
2140: 65 6c 73 65 0d 0a 20 20 20 20 5b 44 6c 6c 49 6d  else..    [DllIm
2150: 70 6f 72 74 28 53 51 4c 49 54 45 5f 44 4c 4c 29  port(SQLITE_DLL)
2160: 5d 0d 0a 23 65 6e 64 69 66 0d 0a 20 20 20 20 69  ]..#endif..    i
2170: 6e 74 65 72 6e 61 6c 20 73 74 61 74 69 63 20 65  nternal static e
2180: 78 74 65 72 6e 20 49 6e 74 50 74 72 20 73 71 6c  xtern IntPtr sql
2190: 69 74 65 33 5f 63 6f 6c 75 6d 6e 5f 6e 61 6d 65  ite3_column_name
21a0: 31 36 28 49 6e 74 50 74 72 20 73 74 6d 74 2c 20  16(IntPtr stmt, 
21b0: 69 6e 74 20 69 6e 64 65 78 29 3b 0d 0a 0d 0a 23  int index);....#
21c0: 69 66 20 21 50 4c 41 54 46 4f 52 4d 5f 43 4f 4d  if !PLATFORM_COM
21d0: 50 41 43 54 46 52 41 4d 45 57 4f 52 4b 0d 0a 20  PACTFRAMEWORK.. 
21e0: 20 20 20 5b 44 6c 6c 49 6d 70 6f 72 74 28 53 51     [DllImport(SQ
21f0: 4c 49 54 45 5f 44 4c 4c 2c 20 43 61 6c 6c 69 6e  LITE_DLL, Callin
2200: 67 43 6f 6e 76 65 6e 74 69 6f 6e 20 3d 20 43 61  gConvention = Ca
2210: 6c 6c 69 6e 67 43 6f 6e 76 65 6e 74 69 6f 6e 2e  llingConvention.
2220: 43 64 65 63 6c 29 5d 0d 0a 23 65 6c 73 65 0d 0a  Cdecl)]..#else..
2230: 20 20 20 20 5b 44 6c 6c 49 6d 70 6f 72 74 28 53      [DllImport(S
2240: 51 4c 49 54 45 5f 44 4c 4c 29 5d 0d 0a 23 65 6e  QLITE_DLL)]..#en
2250: 64 69 66 0d 0a 20 20 20 20 69 6e 74 65 72 6e 61  dif..    interna
2260: 6c 20 73 74 61 74 69 63 20 65 78 74 65 72 6e 20  l static extern 
2270: 49 6e 74 50 74 72 20 73 71 6c 69 74 65 33 5f 63  IntPtr sqlite3_c
2280: 6f 6c 75 6d 6e 5f 6f 72 69 67 69 6e 5f 6e 61 6d  olumn_origin_nam
2290: 65 28 49 6e 74 50 74 72 20 73 74 6d 74 2c 20 69  e(IntPtr stmt, i
22a0: 6e 74 20 69 6e 64 65 78 29 3b 0d 0a 0d 0a 23 69  nt index);....#i
22b0: 66 20 21 50 4c 41 54 46 4f 52 4d 5f 43 4f 4d 50  f !PLATFORM_COMP
22c0: 41 43 54 46 52 41 4d 45 57 4f 52 4b 0d 0a 20 20  ACTFRAMEWORK..  
22d0: 20 20 5b 44 6c 6c 49 6d 70 6f 72 74 28 53 51 4c    [DllImport(SQL
22e0: 49 54 45 5f 44 4c 4c 2c 20 43 61 6c 6c 69 6e 67  ITE_DLL, Calling
22f0: 43 6f 6e 76 65 6e 74 69 6f 6e 20 3d 20 43 61 6c  Convention = Cal
2300: 6c 69 6e 67 43 6f 6e 76 65 6e 74 69 6f 6e 2e 43  lingConvention.C
2310: 64 65 63 6c 29 5d 0d 0a 23 65 6c 73 65 0d 0a 20  decl)]..#else.. 
2320: 20 20 20 5b 44 6c 6c 49 6d 70 6f 72 74 28 53 51     [DllImport(SQ
2330: 4c 49 54 45 5f 44 4c 4c 29 5d 0d 0a 23 65 6e 64  LITE_DLL)]..#end
2340: 69 66 0d 0a 20 20 20 20 69 6e 74 65 72 6e 61 6c  if..    internal
2350: 20 73 74 61 74 69 63 20 65 78 74 65 72 6e 20 49   static extern I
2360: 6e 74 50 74 72 20 73 71 6c 69 74 65 33 5f 63 6f  ntPtr sqlite3_co
2370: 6c 75 6d 6e 5f 6f 72 69 67 69 6e 5f 6e 61 6d 65  lumn_origin_name
2380: 31 36 28 49 6e 74 50 74 72 20 73 74 6d 74 2c 20  16(IntPtr stmt, 
2390: 69 6e 74 20 69 6e 64 65 78 29 3b 0d 0a 0d 0a 23  int index);....#
23a0: 69 66 20 21 50 4c 41 54 46 4f 52 4d 5f 43 4f 4d  if !PLATFORM_COM
23b0: 50 41 43 54 46 52 41 4d 45 57 4f 52 4b 0d 0a 20  PACTFRAMEWORK.. 
23c0: 20 20 20 5b 44 6c 6c 49 6d 70 6f 72 74 28 53 51     [DllImport(SQ
23d0: 4c 49 54 45 5f 44 4c 4c 2c 20 43 61 6c 6c 69 6e  LITE_DLL, Callin
23e0: 67 43 6f 6e 76 65 6e 74 69 6f 6e 20 3d 20 43 61  gConvention = Ca
23f0: 6c 6c 69 6e 67 43 6f 6e 76 65 6e 74 69 6f 6e 2e  llingConvention.
2400: 43 64 65 63 6c 29 5d 0d 0a 23 65 6c 73 65 0d 0a  Cdecl)]..#else..
2410: 20 20 20 20 5b 44 6c 6c 49 6d 70 6f 72 74 28 53      [DllImport(S
2420: 51 4c 49 54 45 5f 44 4c 4c 29 5d 0d 0a 23 65 6e  QLITE_DLL)]..#en
2430: 64 69 66 0d 0a 20 20 20 20 69 6e 74 65 72 6e 61  dif..    interna
2440: 6c 20 73 74 61 74 69 63 20 65 78 74 65 72 6e 20  l static extern 
2450: 49 6e 74 50 74 72 20 73 71 6c 69 74 65 33 5f 63  IntPtr sqlite3_c
2460: 6f 6c 75 6d 6e 5f 74 61 62 6c 65 5f 6e 61 6d 65  olumn_table_name
2470: 28 49 6e 74 50 74 72 20 73 74 6d 74 2c 20 69 6e  (IntPtr stmt, in
2480: 74 20 69 6e 64 65 78 29 3b 0d 0a 0d 0a 23 69 66  t index);....#if
2490: 20 21 50 4c 41 54 46 4f 52 4d 5f 43 4f 4d 50 41   !PLATFORM_COMPA
24a0: 43 54 46 52 41 4d 45 57 4f 52 4b 0d 0a 20 20 20  CTFRAMEWORK..   
24b0: 20 5b 44 6c 6c 49 6d 70 6f 72 74 28 53 51 4c 49   [DllImport(SQLI
24c0: 54 45 5f 44 4c 4c 2c 20 43 61 6c 6c 69 6e 67 43  TE_DLL, CallingC
24d0: 6f 6e 76 65 6e 74 69 6f 6e 20 3d 20 43 61 6c 6c  onvention = Call
24e0: 69 6e 67 43 6f 6e 76 65 6e 74 69 6f 6e 2e 43 64  ingConvention.Cd
24f0: 65 63 6c 29 5d 0d 0a 23 65 6c 73 65 0d 0a 20 20  ecl)]..#else..  
2500: 20 20 5b 44 6c 6c 49 6d 70 6f 72 74 28 53 51 4c    [DllImport(SQL
2510: 49 54 45 5f 44 4c 4c 29 5d 0d 0a 23 65 6e 64 69  ITE_DLL)]..#endi
2520: 66 0d 0a 20 20 20 20 69 6e 74 65 72 6e 61 6c 20  f..    internal 
2530: 73 74 61 74 69 63 20 65 78 74 65 72 6e 20 49 6e  static extern In
2540: 74 50 74 72 20 73 71 6c 69 74 65 33 5f 63 6f 6c  tPtr sqlite3_col
2550: 75 6d 6e 5f 74 61 62 6c 65 5f 6e 61 6d 65 31 36  umn_table_name16
2560: 28 49 6e 74 50 74 72 20 73 74 6d 74 2c 20 69 6e  (IntPtr stmt, in
2570: 74 20 69 6e 64 65 78 29 3b 0d 0a 0d 0a 23 69 66  t index);....#if
2580: 20 21 50 4c 41 54 46 4f 52 4d 5f 43 4f 4d 50 41   !PLATFORM_COMPA
2590: 43 54 46 52 41 4d 45 57 4f 52 4b 0d 0a 20 20 20  CTFRAMEWORK..   
25a0: 20 5b 44 6c 6c 49 6d 70 6f 72 74 28 53 51 4c 49   [DllImport(SQLI
25b0: 54 45 5f 44 4c 4c 2c 20 43 61 6c 6c 69 6e 67 43  TE_DLL, CallingC
25c0: 6f 6e 76 65 6e 74 69 6f 6e 20 3d 20 43 61 6c 6c  onvention = Call
25d0: 69 6e 67 43 6f 6e 76 65 6e 74 69 6f 6e 2e 43 64  ingConvention.Cd
25e0: 65 63 6c 29 5d 0d 0a 23 65 6c 73 65 0d 0a 20 20  ecl)]..#else..  
25f0: 20 20 5b 44 6c 6c 49 6d 70 6f 72 74 28 53 51 4c    [DllImport(SQL
2600: 49 54 45 5f 44 4c 4c 29 5d 0d 0a 23 65 6e 64 69  ITE_DLL)]..#endi
2610: 66 0d 0a 20 20 20 20 69 6e 74 65 72 6e 61 6c 20  f..    internal 
2620: 73 74 61 74 69 63 20 65 78 74 65 72 6e 20 49 6e  static extern In
2630: 74 50 74 72 20 73 71 6c 69 74 65 33 5f 63 6f 6c  tPtr sqlite3_col
2640: 75 6d 6e 5f 74 65 78 74 28 49 6e 74 50 74 72 20  umn_text(IntPtr 
2650: 73 74 6d 74 2c 20 69 6e 74 20 69 6e 64 65 78 29  stmt, int index)
2660: 3b 0d 0a 0d 0a 23 69 66 20 21 50 4c 41 54 46 4f  ;....#if !PLATFO
2670: 52 4d 5f 43 4f 4d 50 41 43 54 46 52 41 4d 45 57  RM_COMPACTFRAMEW
2680: 4f 52 4b 0d 0a 20 20 20 20 5b 44 6c 6c 49 6d 70  ORK..    [DllImp
2690: 6f 72 74 28 53 51 4c 49 54 45 5f 44 4c 4c 2c 20  ort(SQLITE_DLL, 
26a0: 43 61 6c 6c 69 6e 67 43 6f 6e 76 65 6e 74 69 6f  CallingConventio
26b0: 6e 20 3d 20 43 61 6c 6c 69 6e 67 43 6f 6e 76 65  n = CallingConve
26c0: 6e 74 69 6f 6e 2e 43 64 65 63 6c 29 5d 0d 0a 23  ntion.Cdecl)]..#
26d0: 65 6c 73 65 0d 0a 20 20 20 20 5b 44 6c 6c 49 6d  else..    [DllIm
26e0: 70 6f 72 74 28 53 51 4c 49 54 45 5f 44 4c 4c 29  port(SQLITE_DLL)
26f0: 5d 0d 0a 23 65 6e 64 69 66 0d 0a 20 20 20 20 69  ]..#endif..    i
2700: 6e 74 65 72 6e 61 6c 20 73 74 61 74 69 63 20 65  nternal static e
2710: 78 74 65 72 6e 20 49 6e 74 50 74 72 20 73 71 6c  xtern IntPtr sql
2720: 69 74 65 33 5f 63 6f 6c 75 6d 6e 5f 74 65 78 74  ite3_column_text
2730: 31 36 28 49 6e 74 50 74 72 20 73 74 6d 74 2c 20  16(IntPtr stmt, 
2740: 69 6e 74 20 69 6e 64 65 78 29 3b 0d 0a 0d 0a 23  int index);....#
2750: 69 66 20 21 50 4c 41 54 46 4f 52 4d 5f 43 4f 4d  if !PLATFORM_COM
2760: 50 41 43 54 46 52 41 4d 45 57 4f 52 4b 0d 0a 20  PACTFRAMEWORK.. 
2770: 20 20 20 5b 44 6c 6c 49 6d 70 6f 72 74 28 53 51     [DllImport(SQ
2780: 4c 49 54 45 5f 44 4c 4c 2c 20 43 61 6c 6c 69 6e  LITE_DLL, Callin
2790: 67 43 6f 6e 76 65 6e 74 69 6f 6e 20 3d 20 43 61  gConvention = Ca
27a0: 6c 6c 69 6e 67 43 6f 6e 76 65 6e 74 69 6f 6e 2e  llingConvention.
27b0: 43 64 65 63 6c 29 5d 0d 0a 23 65 6c 73 65 0d 0a  Cdecl)]..#else..
27c0: 20 20 20 20 5b 44 6c 6c 49 6d 70 6f 72 74 28 53      [DllImport(S
27d0: 51 4c 49 54 45 5f 44 4c 4c 29 5d 0d 0a 23 65 6e  QLITE_DLL)]..#en
27e0: 64 69 66 0d 0a 20 20 20 20 69 6e 74 65 72 6e 61  dif..    interna
27f0: 6c 20 73 74 61 74 69 63 20 65 78 74 65 72 6e 20  l static extern 
2800: 69 6e 74 20 73 71 6c 69 74 65 33 5f 65 78 74 65  int sqlite3_exte
2810: 6e 64 65 64 5f 72 65 73 75 6c 74 5f 63 6f 64 65  nded_result_code
2820: 73 28 49 6e 74 50 74 72 20 64 62 2c 20 69 6e 74  s(IntPtr db, int
2830: 20 6f 6e 6f 66 66 29 3b 0d 0a 0d 0a 23 69 66 20   onoff);....#if 
2840: 21 50 4c 41 54 46 4f 52 4d 5f 43 4f 4d 50 41 43  !PLATFORM_COMPAC
2850: 54 46 52 41 4d 45 57 4f 52 4b 0d 0a 20 20 20 20  TFRAMEWORK..    
2860: 5b 44 6c 6c 49 6d 70 6f 72 74 28 53 51 4c 49 54  [DllImport(SQLIT
2870: 45 5f 44 4c 4c 2c 20 43 61 6c 6c 69 6e 67 43 6f  E_DLL, CallingCo
2880: 6e 76 65 6e 74 69 6f 6e 20 3d 20 43 61 6c 6c 69  nvention = Calli
2890: 6e 67 43 6f 6e 76 65 6e 74 69 6f 6e 2e 43 64 65  ngConvention.Cde
28a0: 63 6c 29 5d 0d 0a 23 65 6c 73 65 0d 0a 20 20 20  cl)]..#else..   
28b0: 20 5b 44 6c 6c 49 6d 70 6f 72 74 28 53 51 4c 49   [DllImport(SQLI
28c0: 54 45 5f 44 4c 4c 29 5d 0d 0a 23 65 6e 64 69 66  TE_DLL)]..#endif
28d0: 0d 0a 20 20 20 20 69 6e 74 65 72 6e 61 6c 20 73  ..    internal s
28e0: 74 61 74 69 63 20 65 78 74 65 72 6e 20 69 6e 74  tatic extern int
28f0: 20 73 71 6c 69 74 65 33 5f 65 72 72 63 6f 64 65   sqlite3_errcode
2900: 28 49 6e 74 50 74 72 20 64 62 29 3b 0d 0a 0d 0a  (IntPtr db);....
2910: 23 69 66 20 21 50 4c 41 54 46 4f 52 4d 5f 43 4f  #if !PLATFORM_CO
2920: 4d 50 41 43 54 46 52 41 4d 45 57 4f 52 4b 0d 0a  MPACTFRAMEWORK..
2930: 20 20 20 20 5b 44 6c 6c 49 6d 70 6f 72 74 28 53      [DllImport(S
2940: 51 4c 49 54 45 5f 44 4c 4c 2c 20 43 61 6c 6c 69  QLITE_DLL, Calli
2950: 6e 67 43 6f 6e 76 65 6e 74 69 6f 6e 20 3d 20 43  ngConvention = C
2960: 61 6c 6c 69 6e 67 43 6f 6e 76 65 6e 74 69 6f 6e  allingConvention
2970: 2e 43 64 65 63 6c 29 5d 0d 0a 23 65 6c 73 65 0d  .Cdecl)]..#else.
2980: 0a 20 20 20 20 5b 44 6c 6c 49 6d 70 6f 72 74 28  .    [DllImport(
2990: 53 51 4c 49 54 45 5f 44 4c 4c 29 5d 0d 0a 23 65  SQLITE_DLL)]..#e
29a0: 6e 64 69 66 0d 0a 20 20 20 20 69 6e 74 65 72 6e  ndif..    intern
29b0: 61 6c 20 73 74 61 74 69 63 20 65 78 74 65 72 6e  al static extern
29c0: 20 69 6e 74 20 73 71 6c 69 74 65 33 5f 65 78 74   int sqlite3_ext
29d0: 65 6e 64 65 64 5f 65 72 72 63 6f 64 65 28 49 6e  ended_errcode(In
29e0: 74 50 74 72 20 64 62 29 3b 0d 0a 0d 0a 23 69 66  tPtr db);....#if
29f0: 20 21 50 4c 41 54 46 4f 52 4d 5f 43 4f 4d 50 41   !PLATFORM_COMPA
2a00: 43 54 46 52 41 4d 45 57 4f 52 4b 0d 0a 20 20 20  CTFRAMEWORK..   
2a10: 20 5b 44 6c 6c 49 6d 70 6f 72 74 28 53 51 4c 49   [DllImport(SQLI
2a20: 54 45 5f 44 4c 4c 2c 20 43 61 6c 6c 69 6e 67 43  TE_DLL, CallingC
2a30: 6f 6e 76 65 6e 74 69 6f 6e 20 3d 20 43 61 6c 6c  onvention = Call
2a40: 69 6e 67 43 6f 6e 76 65 6e 74 69 6f 6e 2e 43 64  ingConvention.Cd
2a50: 65 63 6c 29 5d 0d 0a 23 65 6c 73 65 0d 0a 20 20  ecl)]..#else..  
2a60: 20 20 5b 44 6c 6c 49 6d 70 6f 72 74 28 53 51 4c    [DllImport(SQL
2a70: 49 54 45 5f 44 4c 4c 29 5d 0d 0a 23 65 6e 64 69  ITE_DLL)]..#endi
2a80: 66 0d 0a 20 20 20 20 69 6e 74 65 72 6e 61 6c 20  f..    internal 
2a90: 73 74 61 74 69 63 20 65 78 74 65 72 6e 20 49 6e  static extern In
2aa0: 74 50 74 72 20 73 71 6c 69 74 65 33 5f 65 72 72  tPtr sqlite3_err
2ab0: 6d 73 67 28 49 6e 74 50 74 72 20 64 62 29 3b 0d  msg(IntPtr db);.
2ac0: 0a 0d 0a 23 69 66 20 21 50 4c 41 54 46 4f 52 4d  ...#if !PLATFORM
2ad0: 5f 43 4f 4d 50 41 43 54 46 52 41 4d 45 57 4f 52  _COMPACTFRAMEWOR
2ae0: 4b 0d 0a 20 20 20 20 5b 44 6c 6c 49 6d 70 6f 72  K..    [DllImpor
2af0: 74 28 53 51 4c 49 54 45 5f 44 4c 4c 2c 20 43 61  t(SQLITE_DLL, Ca
2b00: 6c 6c 69 6e 67 43 6f 6e 76 65 6e 74 69 6f 6e 20  llingConvention 
2b10: 3d 20 43 61 6c 6c 69 6e 67 43 6f 6e 76 65 6e 74  = CallingConvent
2b20: 69 6f 6e 2e 43 64 65 63 6c 29 5d 0d 0a 23 65 6c  ion.Cdecl)]..#el
2b30: 73 65 0d 0a 20 20 20 20 5b 44 6c 6c 49 6d 70 6f  se..    [DllImpo
2b40: 72 74 28 53 51 4c 49 54 45 5f 44 4c 4c 29 5d 0d  rt(SQLITE_DLL)].
2b50: 0a 23 65 6e 64 69 66 0d 0a 20 20 20 20 69 6e 74  .#endif..    int
2b60: 65 72 6e 61 6c 20 73 74 61 74 69 63 20 65 78 74  ernal static ext
2b70: 65 72 6e 20 69 6e 74 20 73 71 6c 69 74 65 33 5f  ern int sqlite3_
2b80: 70 72 65 70 61 72 65 28 49 6e 74 50 74 72 20 64  prepare(IntPtr d
2b90: 62 2c 20 49 6e 74 50 74 72 20 70 53 71 6c 2c 20  b, IntPtr pSql, 
2ba0: 69 6e 74 20 6e 42 79 74 65 73 2c 20 6f 75 74 20  int nBytes, out 
2bb0: 49 6e 74 50 74 72 20 73 74 6d 74 2c 20 6f 75 74  IntPtr stmt, out
2bc0: 20 49 6e 74 50 74 72 20 70 74 72 52 65 6d 61 69   IntPtr ptrRemai
2bd0: 6e 29 3b 0d 0a 0d 0a 23 69 66 20 21 50 4c 41 54  n);....#if !PLAT
2be0: 46 4f 52 4d 5f 43 4f 4d 50 41 43 54 46 52 41 4d  FORM_COMPACTFRAM
2bf0: 45 57 4f 52 4b 0d 0a 20 20 20 20 5b 44 6c 6c 49  EWORK..    [DllI
2c00: 6d 70 6f 72 74 28 53 51 4c 49 54 45 5f 44 4c 4c  mport(SQLITE_DLL
2c10: 2c 20 43 61 6c 6c 69 6e 67 43 6f 6e 76 65 6e 74  , CallingConvent
2c20: 69 6f 6e 20 3d 20 43 61 6c 6c 69 6e 67 43 6f 6e  ion = CallingCon
2c30: 76 65 6e 74 69 6f 6e 2e 43 64 65 63 6c 29 5d 0d  vention.Cdecl)].
2c40: 0a 23 65 6c 73 65 0d 0a 20 20 20 20 5b 44 6c 6c  .#else..    [Dll
2c50: 49 6d 70 6f 72 74 28 53 51 4c 49 54 45 5f 44 4c  Import(SQLITE_DL
2c60: 4c 29 5d 0d 0a 23 65 6e 64 69 66 0d 0a 20 20 20  L)]..#endif..   
2c70: 20 69 6e 74 65 72 6e 61 6c 20 73 74 61 74 69 63   internal static
2c80: 20 65 78 74 65 72 6e 20 69 6e 74 20 73 71 6c 69   extern int sqli
2c90: 74 65 33 5f 74 61 62 6c 65 5f 63 6f 6c 75 6d 6e  te3_table_column
2ca0: 5f 6d 65 74 61 64 61 74 61 28 49 6e 74 50 74 72  _metadata(IntPtr
2cb0: 20 64 62 2c 20 62 79 74 65 5b 5d 20 64 62 4e 61   db, byte[] dbNa
2cc0: 6d 65 2c 20 62 79 74 65 5b 5d 20 74 62 6c 4e 61  me, byte[] tblNa
2cd0: 6d 65 2c 20 62 79 74 65 5b 5d 20 63 6f 6c 4e 61  me, byte[] colNa
2ce0: 6d 65 2c 20 6f 75 74 20 49 6e 74 50 74 72 20 70  me, out IntPtr p
2cf0: 74 72 44 61 74 61 54 79 70 65 2c 20 6f 75 74 20  trDataType, out 
2d00: 49 6e 74 50 74 72 20 70 74 72 43 6f 6c 6c 53 65  IntPtr ptrCollSe
2d10: 71 2c 20 6f 75 74 20 69 6e 74 20 6e 6f 74 4e 75  q, out int notNu
2d20: 6c 6c 2c 20 6f 75 74 20 69 6e 74 20 70 72 69 6d  ll, out int prim
2d30: 61 72 79 4b 65 79 2c 20 6f 75 74 20 69 6e 74 20  aryKey, out int 
2d40: 61 75 74 6f 49 6e 63 29 3b 0d 0a 0d 0a 23 69 66  autoInc);....#if
2d50: 20 21 50 4c 41 54 46 4f 52 4d 5f 43 4f 4d 50 41   !PLATFORM_COMPA
2d60: 43 54 46 52 41 4d 45 57 4f 52 4b 0d 0a 20 20 20  CTFRAMEWORK..   
2d70: 20 5b 44 6c 6c 49 6d 70 6f 72 74 28 53 51 4c 49   [DllImport(SQLI
2d80: 54 45 5f 44 4c 4c 2c 20 43 61 6c 6c 69 6e 67 43  TE_DLL, CallingC
2d90: 6f 6e 76 65 6e 74 69 6f 6e 20 3d 20 43 61 6c 6c  onvention = Call
2da0: 69 6e 67 43 6f 6e 76 65 6e 74 69 6f 6e 2e 43 64  ingConvention.Cd
2db0: 65 63 6c 29 5d 0d 0a 23 65 6c 73 65 0d 0a 20 20  ecl)]..#else..  
2dc0: 20 20 5b 44 6c 6c 49 6d 70 6f 72 74 28 53 51 4c    [DllImport(SQL
2dd0: 49 54 45 5f 44 4c 4c 29 5d 0d 0a 23 65 6e 64 69  ITE_DLL)]..#endi
2de0: 66 0d 0a 20 20 20 20 69 6e 74 65 72 6e 61 6c 20  f..    internal 
2df0: 73 74 61 74 69 63 20 65 78 74 65 72 6e 20 49 6e  static extern In
2e00: 74 50 74 72 20 73 71 6c 69 74 65 33 5f 76 61 6c  tPtr sqlite3_val
2e10: 75 65 5f 74 65 78 74 28 49 6e 74 50 74 72 20 70  ue_text(IntPtr p
2e20: 29 3b 0d 0a 0d 0a 23 69 66 20 21 50 4c 41 54 46  );....#if !PLATF
2e30: 4f 52 4d 5f 43 4f 4d 50 41 43 54 46 52 41 4d 45  ORM_COMPACTFRAME
2e40: 57 4f 52 4b 0d 0a 20 20 20 20 5b 44 6c 6c 49 6d  WORK..    [DllIm
2e50: 70 6f 72 74 28 53 51 4c 49 54 45 5f 44 4c 4c 2c  port(SQLITE_DLL,
2e60: 20 43 61 6c 6c 69 6e 67 43 6f 6e 76 65 6e 74 69   CallingConventi
2e70: 6f 6e 20 3d 20 43 61 6c 6c 69 6e 67 43 6f 6e 76  on = CallingConv
2e80: 65 6e 74 69 6f 6e 2e 43 64 65 63 6c 29 5d 0d 0a  ention.Cdecl)]..
2e90: 23 65 6c 73 65 0d 0a 20 20 20 20 5b 44 6c 6c 49  #else..    [DllI
2ea0: 6d 70 6f 72 74 28 53 51 4c 49 54 45 5f 44 4c 4c  mport(SQLITE_DLL
2eb0: 29 5d 0d 0a 23 65 6e 64 69 66 0d 0a 20 20 20 20  )]..#endif..    
2ec0: 69 6e 74 65 72 6e 61 6c 20 73 74 61 74 69 63 20  internal static 
2ed0: 65 78 74 65 72 6e 20 49 6e 74 50 74 72 20 73 71  extern IntPtr sq
2ee0: 6c 69 74 65 33 5f 76 61 6c 75 65 5f 74 65 78 74  lite3_value_text
2ef0: 31 36 28 49 6e 74 50 74 72 20 70 29 3b 0d 0a 23  16(IntPtr p);..#
2f00: 65 6e 64 69 66 0d 0a 0d 0a 20 20 20 20 23 65 6e  endif....    #en
2f10: 64 72 65 67 69 6f 6e 0d 0a 0d 0a 20 20 20 20 2f  dregion....    /
2f20: 2f 20 54 68 65 73 65 20 66 75 6e 63 74 69 6f 6e  / These function
2f30: 73 20 61 72 65 20 63 75 73 74 6f 6d 20 61 6e 64  s are custom and
2f40: 20 68 61 76 65 20 6e 6f 20 65 71 75 69 76 61 6c   have no equival
2f50: 65 6e 74 20 73 74 61 6e 64 61 72 64 20 6c 69 62  ent standard lib
2f60: 72 61 72 79 20 6d 65 74 68 6f 64 2e 0d 0a 20 20  rary method...  
2f70: 20 20 2f 2f 20 41 6c 6c 20 6f 66 20 74 68 65 6d    // All of them
2f80: 20 61 72 65 20 22 6e 69 63 65 20 74 6f 20 68 61   are "nice to ha
2f90: 76 65 73 22 20 61 6e 64 20 6e 6f 74 20 6e 65 63  ves" and not nec
2fa0: 65 73 73 61 72 69 6c 79 20 22 6e 65 65 64 20 74  essarily "need t
2fb0: 6f 20 68 61 76 65 73 22 2e 0d 0a 20 20 20 20 23  o haves"...    #
2fc0: 72 65 67 69 6f 6e 20 6e 6f 20 65 71 75 69 76 61  region no equiva
2fd0: 6c 65 6e 74 20 73 74 61 6e 64 61 72 64 20 6d 65  lent standard me
2fe0: 74 68 6f 64 0d 0a 0d 0a 23 69 66 20 21 53 51 4c  thod....#if !SQL
2ff0: 49 54 45 5f 53 54 41 4e 44 41 52 44 0d 0a 20 20  ITE_STANDARD..  
3000: 20 20 5b 44 6c 6c 49 6d 70 6f 72 74 28 53 51 4c    [DllImport(SQL
3010: 49 54 45 5f 44 4c 4c 29 5d 0d 0a 20 20 20 20 69  ITE_DLL)]..    i
3020: 6e 74 65 72 6e 61 6c 20 73 74 61 74 69 63 20 65  nternal static e
3030: 78 74 65 72 6e 20 49 6e 74 50 74 72 20 73 71 6c  xtern IntPtr sql
3040: 69 74 65 33 5f 63 6f 6e 74 65 78 74 5f 63 6f 6c  ite3_context_col
3050: 6c 73 65 71 28 49 6e 74 50 74 72 20 63 6f 6e 74  lseq(IntPtr cont
3060: 65 78 74 2c 20 6f 75 74 20 69 6e 74 20 74 79 70  ext, out int typ
3070: 65 2c 20 6f 75 74 20 69 6e 74 20 65 6e 63 2c 20  e, out int enc, 
3080: 6f 75 74 20 69 6e 74 20 6c 65 6e 29 3b 0d 0a 0d  out int len);...
3090: 0a 20 20 20 20 5b 44 6c 6c 49 6d 70 6f 72 74 28  .    [DllImport(
30a0: 53 51 4c 49 54 45 5f 44 4c 4c 29 5d 0d 0a 20 20  SQLITE_DLL)]..  
30b0: 20 20 69 6e 74 65 72 6e 61 6c 20 73 74 61 74 69    internal stati
30c0: 63 20 65 78 74 65 72 6e 20 69 6e 74 20 73 71 6c  c extern int sql
30d0: 69 74 65 33 5f 63 6f 6e 74 65 78 74 5f 63 6f 6c  ite3_context_col
30e0: 6c 63 6f 6d 70 61 72 65 28 49 6e 74 50 74 72 20  lcompare(IntPtr 
30f0: 63 6f 6e 74 65 78 74 2c 20 62 79 74 65 5b 5d 20  context, byte[] 
3100: 70 31 2c 20 69 6e 74 20 70 31 6c 65 6e 2c 20 62  p1, int p1len, b
3110: 79 74 65 5b 5d 20 70 32 2c 20 69 6e 74 20 70 32  yte[] p2, int p2
3120: 6c 65 6e 29 3b 0d 0a 0d 0a 20 20 20 20 5b 44 6c  len);....    [Dl
3130: 6c 49 6d 70 6f 72 74 28 53 51 4c 49 54 45 5f 44  lImport(SQLITE_D
3140: 4c 4c 29 5d 0d 0a 20 20 20 20 69 6e 74 65 72 6e  LL)]..    intern
3150: 61 6c 20 73 74 61 74 69 63 20 65 78 74 65 72 6e  al static extern
3160: 20 69 6e 74 20 73 71 6c 69 74 65 33 5f 63 75 72   int sqlite3_cur
3170: 73 6f 72 5f 72 6f 77 69 64 28 49 6e 74 50 74 72  sor_rowid(IntPtr
3180: 20 73 74 6d 74 2c 20 69 6e 74 20 63 75 72 73 6f   stmt, int curso
3190: 72 2c 20 6f 75 74 20 6c 6f 6e 67 20 72 6f 77 69  r, out long rowi
31a0: 64 29 3b 0d 0a 0d 0a 20 20 20 20 5b 44 6c 6c 49  d);....    [DllI
31b0: 6d 70 6f 72 74 28 53 51 4c 49 54 45 5f 44 4c 4c  mport(SQLITE_DLL
31c0: 29 5d 0d 0a 20 20 20 20 69 6e 74 65 72 6e 61 6c  )]..    internal
31d0: 20 73 74 61 74 69 63 20 65 78 74 65 72 6e 20 69   static extern i
31e0: 6e 74 20 73 71 6c 69 74 65 33 5f 69 6e 64 65 78  nt sqlite3_index
31f0: 5f 63 6f 6c 75 6d 6e 5f 69 6e 66 6f 5f 69 6e 74  _column_info_int
3200: 65 72 6f 70 28 49 6e 74 50 74 72 20 64 62 2c 20  erop(IntPtr db, 
3210: 62 79 74 65 5b 5d 20 63 61 74 61 6c 6f 67 2c 20  byte[] catalog, 
3220: 62 79 74 65 5b 5d 20 49 6e 64 65 78 4e 61 6d 65  byte[] IndexName
3230: 2c 20 62 79 74 65 5b 5d 20 43 6f 6c 75 6d 6e 4e  , byte[] ColumnN
3240: 61 6d 65 2c 20 6f 75 74 20 69 6e 74 20 73 6f 72  ame, out int sor
3250: 74 4f 72 64 65 72 2c 20 6f 75 74 20 69 6e 74 20  tOrder, out int 
3260: 6f 6e 45 72 72 6f 72 2c 20 6f 75 74 20 49 6e 74  onError, out Int
3270: 50 74 72 20 43 6f 6c 6c 61 74 69 6f 6e 2c 20 6f  Ptr Collation, o
3280: 75 74 20 69 6e 74 20 63 6f 6c 6c 6c 65 6e 29 3b  ut int colllen);
3290: 0d 0a 0d 0a 20 20 20 20 5b 44 6c 6c 49 6d 70 6f  ....    [DllImpo
32a0: 72 74 28 53 51 4c 49 54 45 5f 44 4c 4c 29 5d 0d  rt(SQLITE_DLL)].
32b0: 0a 20 20 20 20 69 6e 74 65 72 6e 61 6c 20 73 74  .    internal st
32c0: 61 74 69 63 20 65 78 74 65 72 6e 20 76 6f 69 64  atic extern void
32d0: 20 73 71 6c 69 74 65 33 5f 72 65 73 65 74 61 6c   sqlite3_resetal
32e0: 6c 5f 69 6e 74 65 72 6f 70 28 49 6e 74 50 74 72  l_interop(IntPtr
32f0: 20 64 62 29 3b 0d 0a 0d 0a 20 20 20 20 5b 44 6c   db);....    [Dl
3300: 6c 49 6d 70 6f 72 74 28 53 51 4c 49 54 45 5f 44  lImport(SQLITE_D
3310: 4c 4c 29 5d 0d 0a 20 20 20 20 69 6e 74 65 72 6e  LL)]..    intern
3320: 61 6c 20 73 74 61 74 69 63 20 65 78 74 65 72 6e  al static extern
3330: 20 69 6e 74 20 73 71 6c 69 74 65 33 5f 74 61 62   int sqlite3_tab
3340: 6c 65 5f 63 75 72 73 6f 72 28 49 6e 74 50 74 72  le_cursor(IntPtr
3350: 20 73 74 6d 74 2c 20 69 6e 74 20 64 62 2c 20 69   stmt, int db, i
3360: 6e 74 20 74 61 62 6c 65 52 6f 6f 74 50 61 67 65  nt tableRootPage
3370: 29 3b 0d 0a 23 65 6e 64 69 66 0d 0a 0d 0a 20 20  );..#endif....  
3380: 20 20 23 65 6e 64 72 65 67 69 6f 6e 0d 0a 0d 0a    #endregion....
3390: 20 20 20 20 2f 2f 20 53 74 61 6e 64 61 72 64 20      // Standard 
33a0: 41 50 49 20 63 61 6c 6c 73 20 67 6c 6f 62 61 6c  API calls global
33b0: 20 61 63 72 6f 73 73 20 76 65 72 73 69 6f 6e 73   across versions
33c0: 2e 20 20 54 68 65 72 65 20 61 72 65 20 61 20 66  .  There are a f
33d0: 65 77 20 69 6e 73 74 61 6e 63 65 73 20 6f 66 20  ew instances of 
33e0: 69 6e 74 65 72 6f 70 20 63 61 6c 6c 73 0d 0a 20  interop calls.. 
33f0: 20 20 20 2f 2f 20 73 63 61 74 74 65 72 65 64 20     // scattered 
3400: 69 6e 20 68 65 72 65 2c 20 62 75 74 20 74 68 65  in here, but the
3410: 79 20 61 72 65 20 6f 6e 6c 79 20 61 63 74 69 76  y are only activ
3420: 65 20 77 68 65 6e 20 50 4c 41 54 46 4f 52 4d 5f  e when PLATFORM_
3430: 43 4f 4d 50 41 43 54 46 52 41 4d 45 57 4f 52 4b  COMPACTFRAMEWORK
3440: 20 69 73 20 64 65 63 6c 61 72 65 64 2e 0d 0a 20   is declared... 
3450: 20 20 20 23 72 65 67 69 6f 6e 20 73 74 61 6e 64     #region stand
3460: 61 72 64 20 73 71 6c 69 74 65 20 61 70 69 20 63  ard sqlite api c
3470: 61 6c 6c 73 0d 0a 0d 0a 23 69 66 20 21 50 4c 41  alls....#if !PLA
3480: 54 46 4f 52 4d 5f 43 4f 4d 50 41 43 54 46 52 41  TFORM_COMPACTFRA
3490: 4d 45 57 4f 52 4b 0d 0a 20 20 20 20 5b 44 6c 6c  MEWORK..    [Dll
34a0: 49 6d 70 6f 72 74 28 53 51 4c 49 54 45 5f 44 4c  Import(SQLITE_DL
34b0: 4c 2c 20 43 61 6c 6c 69 6e 67 43 6f 6e 76 65 6e  L, CallingConven
34c0: 74 69 6f 6e 20 3d 20 43 61 6c 6c 69 6e 67 43 6f  tion = CallingCo
34d0: 6e 76 65 6e 74 69 6f 6e 2e 43 64 65 63 6c 29 5d  nvention.Cdecl)]
34e0: 0d 0a 23 65 6c 73 65 0d 0a 20 20 20 20 5b 44 6c  ..#else..    [Dl
34f0: 6c 49 6d 70 6f 72 74 28 53 51 4c 49 54 45 5f 44  lImport(SQLITE_D
3500: 4c 4c 29 5d 0d 0a 23 65 6e 64 69 66 0d 0a 20 20  LL)]..#endif..  
3510: 20 20 69 6e 74 65 72 6e 61 6c 20 73 74 61 74 69    internal stati
3520: 63 20 65 78 74 65 72 6e 20 49 6e 74 50 74 72 20  c extern IntPtr 
3530: 73 71 6c 69 74 65 33 5f 6c 69 62 76 65 72 73 69  sqlite3_libversi
3540: 6f 6e 28 29 3b 0d 0a 0d 0a 23 69 66 20 21 50 4c  on();....#if !PL
3550: 41 54 46 4f 52 4d 5f 43 4f 4d 50 41 43 54 46 52  ATFORM_COMPACTFR
3560: 41 4d 45 57 4f 52 4b 0d 0a 20 20 20 20 5b 44 6c  AMEWORK..    [Dl
3570: 6c 49 6d 70 6f 72 74 28 53 51 4c 49 54 45 5f 44  lImport(SQLITE_D
3580: 4c 4c 2c 20 43 61 6c 6c 69 6e 67 43 6f 6e 76 65  LL, CallingConve
3590: 6e 74 69 6f 6e 20 3d 20 43 61 6c 6c 69 6e 67 43  ntion = CallingC
35a0: 6f 6e 76 65 6e 74 69 6f 6e 2e 43 64 65 63 6c 29  onvention.Cdecl)
35b0: 5d 0d 0a 23 65 6c 73 65 0d 0a 20 20 20 20 5b 44  ]..#else..    [D
35c0: 6c 6c 49 6d 70 6f 72 74 28 53 51 4c 49 54 45 5f  llImport(SQLITE_
35d0: 44 4c 4c 29 5d 0d 0a 23 65 6e 64 69 66 0d 0a 20  DLL)]..#endif.. 
35e0: 20 20 20 69 6e 74 65 72 6e 61 6c 20 73 74 61 74     internal stat
35f0: 69 63 20 65 78 74 65 72 6e 20 76 6f 69 64 20 73  ic extern void s
3600: 71 6c 69 74 65 33 5f 69 6e 74 65 72 72 75 70 74  qlite3_interrupt
3610: 28 49 6e 74 50 74 72 20 64 62 29 3b 0d 0a 0d 0a  (IntPtr db);....
3620: 23 69 66 20 21 50 4c 41 54 46 4f 52 4d 5f 43 4f  #if !PLATFORM_CO
3630: 4d 50 41 43 54 46 52 41 4d 45 57 4f 52 4b 0d 0a  MPACTFRAMEWORK..
3640: 20 20 20 20 5b 44 6c 6c 49 6d 70 6f 72 74 28 53      [DllImport(S
3650: 51 4c 49 54 45 5f 44 4c 4c 2c 20 43 61 6c 6c 69  QLITE_DLL, Calli
3660: 6e 67 43 6f 6e 76 65 6e 74 69 6f 6e 20 3d 20 43  ngConvention = C
3670: 61 6c 6c 69 6e 67 43 6f 6e 76 65 6e 74 69 6f 6e  allingConvention
3680: 2e 43 64 65 63 6c 29 5d 0d 0a 23 65 6c 73 65 0d  .Cdecl)]..#else.
3690: 0a 20 20 20 20 5b 44 6c 6c 49 6d 70 6f 72 74 28  .    [DllImport(
36a0: 53 51 4c 49 54 45 5f 44 4c 4c 29 5d 0d 0a 23 65  SQLITE_DLL)]..#e
36b0: 6e 64 69 66 0d 0a 20 20 20 20 69 6e 74 65 72 6e  ndif..    intern
36c0: 61 6c 20 73 74 61 74 69 63 20 65 78 74 65 72 6e  al static extern
36d0: 20 69 6e 74 20 73 71 6c 69 74 65 33 5f 63 68 61   int sqlite3_cha
36e0: 6e 67 65 73 28 49 6e 74 50 74 72 20 64 62 29 3b  nges(IntPtr db);
36f0: 0d 0a 0d 0a 23 69 66 20 21 50 4c 41 54 46 4f 52  ....#if !PLATFOR
3700: 4d 5f 43 4f 4d 50 41 43 54 46 52 41 4d 45 57 4f  M_COMPACTFRAMEWO
3710: 52 4b 0d 0a 20 20 20 20 5b 44 6c 6c 49 6d 70 6f  RK..    [DllImpo
3720: 72 74 28 53 51 4c 49 54 45 5f 44 4c 4c 2c 20 43  rt(SQLITE_DLL, C
3730: 61 6c 6c 69 6e 67 43 6f 6e 76 65 6e 74 69 6f 6e  allingConvention
3740: 20 3d 20 43 61 6c 6c 69 6e 67 43 6f 6e 76 65 6e   = CallingConven
3750: 74 69 6f 6e 2e 43 64 65 63 6c 29 5d 0d 0a 23 65  tion.Cdecl)]..#e
3760: 6c 73 65 0d 0a 20 20 20 20 5b 44 6c 6c 49 6d 70  lse..    [DllImp
3770: 6f 72 74 28 53 51 4c 49 54 45 5f 44 4c 4c 29 5d  ort(SQLITE_DLL)]
3780: 0d 0a 23 65 6e 64 69 66 0d 0a 20 20 20 20 69 6e  ..#endif..    in
3790: 74 65 72 6e 61 6c 20 73 74 61 74 69 63 20 65 78  ternal static ex
37a0: 74 65 72 6e 20 69 6e 74 20 73 71 6c 69 74 65 33  tern int sqlite3
37b0: 5f 62 75 73 79 5f 74 69 6d 65 6f 75 74 28 49 6e  _busy_timeout(In
37c0: 74 50 74 72 20 64 62 2c 20 69 6e 74 20 6d 73 29  tPtr db, int ms)
37d0: 3b 0d 0a 0d 0a 23 69 66 20 21 50 4c 41 54 46 4f  ;....#if !PLATFO
37e0: 52 4d 5f 43 4f 4d 50 41 43 54 46 52 41 4d 45 57  RM_COMPACTFRAMEW
37f0: 4f 52 4b 0d 0a 20 20 20 20 5b 44 6c 6c 49 6d 70  ORK..    [DllImp
3800: 6f 72 74 28 53 51 4c 49 54 45 5f 44 4c 4c 2c 20  ort(SQLITE_DLL, 
3810: 43 61 6c 6c 69 6e 67 43 6f 6e 76 65 6e 74 69 6f  CallingConventio
3820: 6e 20 3d 20 43 61 6c 6c 69 6e 67 43 6f 6e 76 65  n = CallingConve
3830: 6e 74 69 6f 6e 2e 43 64 65 63 6c 29 5d 0d 0a 23  ntion.Cdecl)]..#
3840: 65 6c 73 65 0d 0a 20 20 20 20 5b 44 6c 6c 49 6d  else..    [DllIm
3850: 70 6f 72 74 28 53 51 4c 49 54 45 5f 44 4c 4c 29  port(SQLITE_DLL)
3860: 5d 0d 0a 23 65 6e 64 69 66 0d 0a 20 20 20 20 69  ]..#endif..    i
3870: 6e 74 65 72 6e 61 6c 20 73 74 61 74 69 63 20 65  nternal static e
3880: 78 74 65 72 6e 20 69 6e 74 20 73 71 6c 69 74 65  xtern int sqlite
3890: 33 5f 62 69 6e 64 5f 62 6c 6f 62 28 49 6e 74 50  3_bind_blob(IntP
38a0: 74 72 20 73 74 6d 74 2c 20 69 6e 74 20 69 6e 64  tr stmt, int ind
38b0: 65 78 2c 20 42 79 74 65 5b 5d 20 76 61 6c 75 65  ex, Byte[] value
38c0: 2c 20 69 6e 74 20 6e 53 69 7a 65 2c 20 49 6e 74  , int nSize, Int
38d0: 50 74 72 20 6e 54 72 61 6e 73 69 65 6e 74 29 3b  Ptr nTransient);
38e0: 0d 0a 0d 0a 23 69 66 20 21 50 4c 41 54 46 4f 52  ....#if !PLATFOR
38f0: 4d 5f 43 4f 4d 50 41 43 54 46 52 41 4d 45 57 4f  M_COMPACTFRAMEWO
3900: 52 4b 0d 0a 20 20 20 20 5b 44 6c 6c 49 6d 70 6f  RK..    [DllImpo
3910: 72 74 28 53 51 4c 49 54 45 5f 44 4c 4c 2c 20 43  rt(SQLITE_DLL, C
3920: 61 6c 6c 69 6e 67 43 6f 6e 76 65 6e 74 69 6f 6e  allingConvention
3930: 20 3d 20 43 61 6c 6c 69 6e 67 43 6f 6e 76 65 6e   = CallingConven
3940: 74 69 6f 6e 2e 43 64 65 63 6c 29 5d 0d 0a 20 20  tion.Cdecl)]..  
3950: 20 20 69 6e 74 65 72 6e 61 6c 20 73 74 61 74 69    internal stati
3960: 63 20 65 78 74 65 72 6e 20 69 6e 74 20 73 71 6c  c extern int sql
3970: 69 74 65 33 5f 62 69 6e 64 5f 64 6f 75 62 6c 65  ite3_bind_double
3980: 28 49 6e 74 50 74 72 20 73 74 6d 74 2c 20 69 6e  (IntPtr stmt, in
3990: 74 20 69 6e 64 65 78 2c 20 64 6f 75 62 6c 65 20  t index, double 
39a0: 76 61 6c 75 65 29 3b 0d 0a 23 65 6c 73 65 0d 0a  value);..#else..
39b0: 20 20 20 20 5b 44 6c 6c 49 6d 70 6f 72 74 28 53      [DllImport(S
39c0: 51 4c 49 54 45 5f 44 4c 4c 29 5d 0d 0a 20 20 20  QLITE_DLL)]..   
39d0: 20 69 6e 74 65 72 6e 61 6c 20 73 74 61 74 69 63   internal static
39e0: 20 65 78 74 65 72 6e 20 69 6e 74 20 73 71 6c 69   extern int sqli
39f0: 74 65 33 5f 62 69 6e 64 5f 64 6f 75 62 6c 65 5f  te3_bind_double_
3a00: 69 6e 74 65 72 6f 70 28 49 6e 74 50 74 72 20 73  interop(IntPtr s
3a10: 74 6d 74 2c 20 69 6e 74 20 69 6e 64 65 78 2c 20  tmt, int index, 
3a20: 72 65 66 20 64 6f 75 62 6c 65 20 76 61 6c 75 65  ref double value
3a30: 29 3b 0d 0a 23 65 6e 64 69 66 0d 0a 0d 0a 23 69  );..#endif....#i
3a40: 66 20 21 50 4c 41 54 46 4f 52 4d 5f 43 4f 4d 50  f !PLATFORM_COMP
3a50: 41 43 54 46 52 41 4d 45 57 4f 52 4b 0d 0a 20 20  ACTFRAMEWORK..  
3a60: 20 20 5b 44 6c 6c 49 6d 70 6f 72 74 28 53 51 4c    [DllImport(SQL
3a70: 49 54 45 5f 44 4c 4c 2c 20 43 61 6c 6c 69 6e 67  ITE_DLL, Calling
3a80: 43 6f 6e 76 65 6e 74 69 6f 6e 20 3d 20 43 61 6c  Convention = Cal
3a90: 6c 69 6e 67 43 6f 6e 76 65 6e 74 69 6f 6e 2e 43  lingConvention.C
3aa0: 64 65 63 6c 29 5d 0d 0a 23 65 6c 73 65 0d 0a 20  decl)]..#else.. 
3ab0: 20 20 20 5b 44 6c 6c 49 6d 70 6f 72 74 28 53 51     [DllImport(SQ
3ac0: 4c 49 54 45 5f 44 4c 4c 29 5d 0d 0a 23 65 6e 64  LITE_DLL)]..#end
3ad0: 69 66 0d 0a 20 20 20 20 69 6e 74 65 72 6e 61 6c  if..    internal
3ae0: 20 73 74 61 74 69 63 20 65 78 74 65 72 6e 20 69   static extern i
3af0: 6e 74 20 73 71 6c 69 74 65 33 5f 62 69 6e 64 5f  nt sqlite3_bind_
3b00: 69 6e 74 28 49 6e 74 50 74 72 20 73 74 6d 74 2c  int(IntPtr stmt,
3b10: 20 69 6e 74 20 69 6e 64 65 78 2c 20 69 6e 74 20   int index, int 
3b20: 76 61 6c 75 65 29 3b 0d 0a 0d 0a 23 69 66 20 21  value);....#if !
3b30: 50 4c 41 54 46 4f 52 4d 5f 43 4f 4d 50 41 43 54  PLATFORM_COMPACT
3b40: 46 52 41 4d 45 57 4f 52 4b 0d 0a 20 20 20 20 5b  FRAMEWORK..    [
3b50: 44 6c 6c 49 6d 70 6f 72 74 28 53 51 4c 49 54 45  DllImport(SQLITE
3b60: 5f 44 4c 4c 2c 20 43 61 6c 6c 69 6e 67 43 6f 6e  _DLL, CallingCon
3b70: 76 65 6e 74 69 6f 6e 20 3d 20 43 61 6c 6c 69 6e  vention = Callin
3b80: 67 43 6f 6e 76 65 6e 74 69 6f 6e 2e 43 64 65 63  gConvention.Cdec
3b90: 6c 29 5d 0d 0a 20 20 20 20 69 6e 74 65 72 6e 61  l)]..    interna
3ba0: 6c 20 73 74 61 74 69 63 20 65 78 74 65 72 6e 20  l static extern 
3bb0: 69 6e 74 20 73 71 6c 69 74 65 33 5f 62 69 6e 64  int sqlite3_bind
3bc0: 5f 69 6e 74 36 34 28 49 6e 74 50 74 72 20 73 74  _int64(IntPtr st
3bd0: 6d 74 2c 20 69 6e 74 20 69 6e 64 65 78 2c 20 6c  mt, int index, l
3be0: 6f 6e 67 20 76 61 6c 75 65 29 3b 0d 0a 23 65 6c  ong value);..#el
3bf0: 73 65 0d 0a 20 20 20 20 5b 44 6c 6c 49 6d 70 6f  se..    [DllImpo
3c00: 72 74 28 53 51 4c 49 54 45 5f 44 4c 4c 29 5d 0d  rt(SQLITE_DLL)].
3c10: 0a 20 20 20 20 69 6e 74 65 72 6e 61 6c 20 73 74  .    internal st
3c20: 61 74 69 63 20 65 78 74 65 72 6e 20 69 6e 74 20  atic extern int 
3c30: 73 71 6c 69 74 65 33 5f 62 69 6e 64 5f 69 6e 74  sqlite3_bind_int
3c40: 36 34 5f 69 6e 74 65 72 6f 70 28 49 6e 74 50 74  64_interop(IntPt
3c50: 72 20 73 74 6d 74 2c 20 69 6e 74 20 69 6e 64 65  r stmt, int inde
3c60: 78 2c 20 72 65 66 20 6c 6f 6e 67 20 76 61 6c 75  x, ref long valu
3c70: 65 29 3b 0d 0a 23 65 6e 64 69 66 0d 0a 0d 0a 23  e);..#endif....#
3c80: 69 66 20 21 50 4c 41 54 46 4f 52 4d 5f 43 4f 4d  if !PLATFORM_COM
3c90: 50 41 43 54 46 52 41 4d 45 57 4f 52 4b 0d 0a 20  PACTFRAMEWORK.. 
3ca0: 20 20 20 5b 44 6c 6c 49 6d 70 6f 72 74 28 53 51     [DllImport(SQ
3cb0: 4c 49 54 45 5f 44 4c 4c 2c 20 43 61 6c 6c 69 6e  LITE_DLL, Callin
3cc0: 67 43 6f 6e 76 65 6e 74 69 6f 6e 20 3d 20 43 61  gConvention = Ca
3cd0: 6c 6c 69 6e 67 43 6f 6e 76 65 6e 74 69 6f 6e 2e  llingConvention.
3ce0: 43 64 65 63 6c 29 5d 0d 0a 23 65 6c 73 65 0d 0a  Cdecl)]..#else..
3cf0: 20 20 20 20 5b 44 6c 6c 49 6d 70 6f 72 74 28 53      [DllImport(S
3d00: 51 4c 49 54 45 5f 44 4c 4c 29 5d 0d 0a 23 65 6e  QLITE_DLL)]..#en
3d10: 64 69 66 0d 0a 20 20 20 20 69 6e 74 65 72 6e 61  dif..    interna
3d20: 6c 20 73 74 61 74 69 63 20 65 78 74 65 72 6e 20  l static extern 
3d30: 69 6e 74 20 73 71 6c 69 74 65 33 5f 62 69 6e 64  int sqlite3_bind
3d40: 5f 6e 75 6c 6c 28 49 6e 74 50 74 72 20 73 74 6d  _null(IntPtr stm
3d50: 74 2c 20 69 6e 74 20 69 6e 64 65 78 29 3b 0d 0a  t, int index);..
3d60: 0d 0a 23 69 66 20 21 50 4c 41 54 46 4f 52 4d 5f  ..#if !PLATFORM_
3d70: 43 4f 4d 50 41 43 54 46 52 41 4d 45 57 4f 52 4b  COMPACTFRAMEWORK
3d80: 0d 0a 20 20 20 20 5b 44 6c 6c 49 6d 70 6f 72 74  ..    [DllImport
3d90: 28 53 51 4c 49 54 45 5f 44 4c 4c 2c 20 43 61 6c  (SQLITE_DLL, Cal
3da0: 6c 69 6e 67 43 6f 6e 76 65 6e 74 69 6f 6e 20 3d  lingConvention =
3db0: 20 43 61 6c 6c 69 6e 67 43 6f 6e 76 65 6e 74 69   CallingConventi
3dc0: 6f 6e 2e 43 64 65 63 6c 29 5d 0d 0a 23 65 6c 73  on.Cdecl)]..#els
3dd0: 65 0d 0a 20 20 20 20 5b 44 6c 6c 49 6d 70 6f 72  e..    [DllImpor
3de0: 74 28 53 51 4c 49 54 45 5f 44 4c 4c 29 5d 0d 0a  t(SQLITE_DLL)]..
3df0: 23 65 6e 64 69 66 0d 0a 20 20 20 20 69 6e 74 65  #endif..    inte
3e00: 72 6e 61 6c 20 73 74 61 74 69 63 20 65 78 74 65  rnal static exte
3e10: 72 6e 20 69 6e 74 20 73 71 6c 69 74 65 33 5f 62  rn int sqlite3_b
3e20: 69 6e 64 5f 74 65 78 74 28 49 6e 74 50 74 72 20  ind_text(IntPtr 
3e30: 73 74 6d 74 2c 20 69 6e 74 20 69 6e 64 65 78 2c  stmt, int index,
3e40: 20 62 79 74 65 5b 5d 20 76 61 6c 75 65 2c 20 69   byte[] value, i
3e50: 6e 74 20 6e 6c 65 6e 2c 20 49 6e 74 50 74 72 20  nt nlen, IntPtr 
3e60: 70 76 52 65 73 65 72 76 65 64 29 3b 0d 0a 0d 0a  pvReserved);....
3e70: 23 69 66 20 21 50 4c 41 54 46 4f 52 4d 5f 43 4f  #if !PLATFORM_CO
3e80: 4d 50 41 43 54 46 52 41 4d 45 57 4f 52 4b 0d 0a  MPACTFRAMEWORK..
3e90: 20 20 20 20 5b 44 6c 6c 49 6d 70 6f 72 74 28 53      [DllImport(S
3ea0: 51 4c 49 54 45 5f 44 4c 4c 2c 20 43 61 6c 6c 69  QLITE_DLL, Calli
3eb0: 6e 67 43 6f 6e 76 65 6e 74 69 6f 6e 20 3d 20 43  ngConvention = C
3ec0: 61 6c 6c 69 6e 67 43 6f 6e 76 65 6e 74 69 6f 6e  allingConvention
3ed0: 2e 43 64 65 63 6c 29 5d 0d 0a 23 65 6c 73 65 0d  .Cdecl)]..#else.
3ee0: 0a 20 20 20 20 5b 44 6c 6c 49 6d 70 6f 72 74 28  .    [DllImport(
3ef0: 53 51 4c 49 54 45 5f 44 4c 4c 29 5d 0d 0a 23 65  SQLITE_DLL)]..#e
3f00: 6e 64 69 66 0d 0a 20 20 20 20 69 6e 74 65 72 6e  ndif..    intern
3f10: 61 6c 20 73 74 61 74 69 63 20 65 78 74 65 72 6e  al static extern
3f20: 20 69 6e 74 20 73 71 6c 69 74 65 33 5f 62 69 6e   int sqlite3_bin
3f30: 64 5f 70 61 72 61 6d 65 74 65 72 5f 63 6f 75 6e  d_parameter_coun
3f40: 74 28 49 6e 74 50 74 72 20 73 74 6d 74 29 3b 0d  t(IntPtr stmt);.
3f50: 0a 0d 0a 23 69 66 20 21 50 4c 41 54 46 4f 52 4d  ...#if !PLATFORM
3f60: 5f 43 4f 4d 50 41 43 54 46 52 41 4d 45 57 4f 52  _COMPACTFRAMEWOR
3f70: 4b 0d 0a 20 20 20 20 5b 44 6c 6c 49 6d 70 6f 72  K..    [DllImpor
3f80: 74 28 53 51 4c 49 54 45 5f 44 4c 4c 2c 20 43 61  t(SQLITE_DLL, Ca
3f90: 6c 6c 69 6e 67 43 6f 6e 76 65 6e 74 69 6f 6e 20  llingConvention 
3fa0: 3d 20 43 61 6c 6c 69 6e 67 43 6f 6e 76 65 6e 74  = CallingConvent
3fb0: 69 6f 6e 2e 43 64 65 63 6c 29 5d 0d 0a 23 65 6c  ion.Cdecl)]..#el
3fc0: 73 65 0d 0a 20 20 20 20 5b 44 6c 6c 49 6d 70 6f  se..    [DllImpo
3fd0: 72 74 28 53 51 4c 49 54 45 5f 44 4c 4c 29 5d 0d  rt(SQLITE_DLL)].
3fe0: 0a 23 65 6e 64 69 66 0d 0a 20 20 20 20 69 6e 74  .#endif..    int
3ff0: 65 72 6e 61 6c 20 73 74 61 74 69 63 20 65 78 74  ernal static ext
4000: 65 72 6e 20 69 6e 74 20 73 71 6c 69 74 65 33 5f  ern int sqlite3_
4010: 62 69 6e 64 5f 70 61 72 61 6d 65 74 65 72 5f 69  bind_parameter_i
4020: 6e 64 65 78 28 49 6e 74 50 74 72 20 73 74 6d 74  ndex(IntPtr stmt
4030: 2c 20 62 79 74 65 5b 5d 20 73 74 72 4e 61 6d 65  , byte[] strName
4040: 29 3b 0d 0a 0d 0a 23 69 66 20 21 50 4c 41 54 46  );....#if !PLATF
4050: 4f 52 4d 5f 43 4f 4d 50 41 43 54 46 52 41 4d 45  ORM_COMPACTFRAME
4060: 57 4f 52 4b 0d 0a 20 20 20 20 5b 44 6c 6c 49 6d  WORK..    [DllIm
4070: 70 6f 72 74 28 53 51 4c 49 54 45 5f 44 4c 4c 2c  port(SQLITE_DLL,
4080: 20 43 61 6c 6c 69 6e 67 43 6f 6e 76 65 6e 74 69   CallingConventi
4090: 6f 6e 20 3d 20 43 61 6c 6c 69 6e 67 43 6f 6e 76  on = CallingConv
40a0: 65 6e 74 69 6f 6e 2e 43 64 65 63 6c 29 5d 0d 0a  ention.Cdecl)]..
40b0: 23 65 6c 73 65 0d 0a 20 20 20 20 5b 44 6c 6c 49  #else..    [DllI
40c0: 6d 70 6f 72 74 28 53 51 4c 49 54 45 5f 44 4c 4c  mport(SQLITE_DLL
40d0: 29 5d 0d 0a 23 65 6e 64 69 66 0d 0a 20 20 20 20  )]..#endif..    
40e0: 69 6e 74 65 72 6e 61 6c 20 73 74 61 74 69 63 20  internal static 
40f0: 65 78 74 65 72 6e 20 69 6e 74 20 73 71 6c 69 74  extern int sqlit
4100: 65 33 5f 63 6f 6c 75 6d 6e 5f 63 6f 75 6e 74 28  e3_column_count(
4110: 49 6e 74 50 74 72 20 73 74 6d 74 29 3b 0d 0a 0d  IntPtr stmt);...
4120: 0a 23 69 66 20 21 50 4c 41 54 46 4f 52 4d 5f 43  .#if !PLATFORM_C
4130: 4f 4d 50 41 43 54 46 52 41 4d 45 57 4f 52 4b 0d  OMPACTFRAMEWORK.
4140: 0a 20 20 20 20 5b 44 6c 6c 49 6d 70 6f 72 74 28  .    [DllImport(
4150: 53 51 4c 49 54 45 5f 44 4c 4c 2c 20 43 61 6c 6c  SQLITE_DLL, Call
4160: 69 6e 67 43 6f 6e 76 65 6e 74 69 6f 6e 20 3d 20  ingConvention = 
4170: 43 61 6c 6c 69 6e 67 43 6f 6e 76 65 6e 74 69 6f  CallingConventio
4180: 6e 2e 43 64 65 63 6c 29 5d 0d 0a 23 65 6c 73 65  n.Cdecl)]..#else
4190: 0d 0a 20 20 20 20 5b 44 6c 6c 49 6d 70 6f 72 74  ..    [DllImport
41a0: 28 53 51 4c 49 54 45 5f 44 4c 4c 29 5d 0d 0a 23  (SQLITE_DLL)]..#
41b0: 65 6e 64 69 66 0d 0a 20 20 20 20 69 6e 74 65 72  endif..    inter
41c0: 6e 61 6c 20 73 74 61 74 69 63 20 65 78 74 65 72  nal static exter
41d0: 6e 20 69 6e 74 20 73 71 6c 69 74 65 33 5f 73 74  n int sqlite3_st
41e0: 65 70 28 49 6e 74 50 74 72 20 73 74 6d 74 29 3b  ep(IntPtr stmt);
41f0: 0d 0a 0d 0a 23 69 66 20 21 50 4c 41 54 46 4f 52  ....#if !PLATFOR
4200: 4d 5f 43 4f 4d 50 41 43 54 46 52 41 4d 45 57 4f  M_COMPACTFRAMEWO
4210: 52 4b 0d 0a 20 20 20 20 5b 44 6c 6c 49 6d 70 6f  RK..    [DllImpo
4220: 72 74 28 53 51 4c 49 54 45 5f 44 4c 4c 2c 20 43  rt(SQLITE_DLL, C
4230: 61 6c 6c 69 6e 67 43 6f 6e 76 65 6e 74 69 6f 6e  allingConvention
4240: 20 3d 20 43 61 6c 6c 69 6e 67 43 6f 6e 76 65 6e   = CallingConven
4250: 74 69 6f 6e 2e 43 64 65 63 6c 29 5d 0d 0a 20 20  tion.Cdecl)]..  
4260: 20 20 69 6e 74 65 72 6e 61 6c 20 73 74 61 74 69    internal stati
4270: 63 20 65 78 74 65 72 6e 20 64 6f 75 62 6c 65 20  c extern double 
4280: 73 71 6c 69 74 65 33 5f 63 6f 6c 75 6d 6e 5f 64  sqlite3_column_d
4290: 6f 75 62 6c 65 28 49 6e 74 50 74 72 20 73 74 6d  ouble(IntPtr stm
42a0: 74 2c 20 69 6e 74 20 69 6e 64 65 78 29 3b 0d 0a  t, int index);..
42b0: 23 65 6c 73 65 0d 0a 20 20 20 20 5b 44 6c 6c 49  #else..    [DllI
42c0: 6d 70 6f 72 74 28 53 51 4c 49 54 45 5f 44 4c 4c  mport(SQLITE_DLL
42d0: 29 5d 0d 0a 20 20 20 20 69 6e 74 65 72 6e 61 6c  )]..    internal
42e0: 20 73 74 61 74 69 63 20 65 78 74 65 72 6e 20 76   static extern v
42f0: 6f 69 64 20 73 71 6c 69 74 65 33 5f 63 6f 6c 75  oid sqlite3_colu
4300: 6d 6e 5f 64 6f 75 62 6c 65 5f 69 6e 74 65 72 6f  mn_double_intero
4310: 70 28 49 6e 74 50 74 72 20 73 74 6d 74 2c 20 69  p(IntPtr stmt, i
4320: 6e 74 20 69 6e 64 65 78 2c 20 6f 75 74 20 64 6f  nt index, out do
4330: 75 62 6c 65 20 76 61 6c 75 65 29 3b 0d 0a 23 65  uble value);..#e
4340: 6e 64 69 66 0d 0a 0d 0a 23 69 66 20 21 50 4c 41  ndif....#if !PLA
4350: 54 46 4f 52 4d 5f 43 4f 4d 50 41 43 54 46 52 41  TFORM_COMPACTFRA
4360: 4d 45 57 4f 52 4b 0d 0a 20 20 20 20 5b 44 6c 6c  MEWORK..    [Dll
4370: 49 6d 70 6f 72 74 28 53 51 4c 49 54 45 5f 44 4c  Import(SQLITE_DL
4380: 4c 2c 20 43 61 6c 6c 69 6e 67 43 6f 6e 76 65 6e  L, CallingConven
4390: 74 69 6f 6e 20 3d 20 43 61 6c 6c 69 6e 67 43 6f  tion = CallingCo
43a0: 6e 76 65 6e 74 69 6f 6e 2e 43 64 65 63 6c 29 5d  nvention.Cdecl)]
43b0: 0d 0a 23 65 6c 73 65 0d 0a 20 20 20 20 5b 44 6c  ..#else..    [Dl
43c0: 6c 49 6d 70 6f 72 74 28 53 51 4c 49 54 45 5f 44  lImport(SQLITE_D
43d0: 4c 4c 29 5d 0d 0a 23 65 6e 64 69 66 0d 0a 20 20  LL)]..#endif..  
43e0: 20 20 69 6e 74 65 72 6e 61 6c 20 73 74 61 74 69    internal stati
43f0: 63 20 65 78 74 65 72 6e 20 69 6e 74 20 73 71 6c  c extern int sql
4400: 69 74 65 33 5f 63 6f 6c 75 6d 6e 5f 69 6e 74 28  ite3_column_int(
4410: 49 6e 74 50 74 72 20 73 74 6d 74 2c 20 69 6e 74  IntPtr stmt, int
4420: 20 69 6e 64 65 78 29 3b 0d 0a 0d 0a 23 69 66 20   index);....#if 
4430: 21 50 4c 41 54 46 4f 52 4d 5f 43 4f 4d 50 41 43  !PLATFORM_COMPAC
4440: 54 46 52 41 4d 45 57 4f 52 4b 0d 0a 20 20 20 20  TFRAMEWORK..    
4450: 5b 44 6c 6c 49 6d 70 6f 72 74 28 53 51 4c 49 54  [DllImport(SQLIT
4460: 45 5f 44 4c 4c 2c 20 43 61 6c 6c 69 6e 67 43 6f  E_DLL, CallingCo
4470: 6e 76 65 6e 74 69 6f 6e 20 3d 20 43 61 6c 6c 69  nvention = Calli
4480: 6e 67 43 6f 6e 76 65 6e 74 69 6f 6e 2e 43 64 65  ngConvention.Cde
4490: 63 6c 29 5d 0d 0a 20 20 20 20 69 6e 74 65 72 6e  cl)]..    intern
44a0: 61 6c 20 73 74 61 74 69 63 20 65 78 74 65 72 6e  al static extern
44b0: 20 6c 6f 6e 67 20 73 71 6c 69 74 65 33 5f 63 6f   long sqlite3_co
44c0: 6c 75 6d 6e 5f 69 6e 74 36 34 28 49 6e 74 50 74  lumn_int64(IntPt
44d0: 72 20 73 74 6d 74 2c 20 69 6e 74 20 69 6e 64 65  r stmt, int inde
44e0: 78 29 3b 0d 0a 23 65 6c 73 65 0d 0a 20 20 20 20  x);..#else..    
44f0: 5b 44 6c 6c 49 6d 70 6f 72 74 28 53 51 4c 49 54  [DllImport(SQLIT
4500: 45 5f 44 4c 4c 29 5d 0d 0a 20 20 20 20 69 6e 74  E_DLL)]..    int
4510: 65 72 6e 61 6c 20 73 74 61 74 69 63 20 65 78 74  ernal static ext
4520: 65 72 6e 20 76 6f 69 64 20 73 71 6c 69 74 65 33  ern void sqlite3
4530: 5f 63 6f 6c 75 6d 6e 5f 69 6e 74 36 34 5f 69 6e  _column_int64_in
4540: 74 65 72 6f 70 28 49 6e 74 50 74 72 20 73 74 6d  terop(IntPtr stm
4550: 74 2c 20 69 6e 74 20 69 6e 64 65 78 2c 20 6f 75  t, int index, ou
4560: 74 20 6c 6f 6e 67 20 76 61 6c 75 65 29 3b 0d 0a  t long value);..
4570: 23 65 6e 64 69 66 0d 0a 0d 0a 23 69 66 20 21 50  #endif....#if !P
4580: 4c 41 54 46 4f 52 4d 5f 43 4f 4d 50 41 43 54 46  LATFORM_COMPACTF
4590: 52 41 4d 45 57 4f 52 4b 0d 0a 20 20 20 20 5b 44  RAMEWORK..    [D
45a0: 6c 6c 49 6d 70 6f 72 74 28 53 51 4c 49 54 45 5f  llImport(SQLITE_
45b0: 44 4c 4c 2c 20 43 61 6c 6c 69 6e 67 43 6f 6e 76  DLL, CallingConv
45c0: 65 6e 74 69 6f 6e 20 3d 20 43 61 6c 6c 69 6e 67  ention = Calling
45d0: 43 6f 6e 76 65 6e 74 69 6f 6e 2e 43 64 65 63 6c  Convention.Cdecl
45e0: 29 5d 0d 0a 23 65 6c 73 65 0d 0a 20 20 20 20 5b  )]..#else..    [
45f0: 44 6c 6c 49 6d 70 6f 72 74 28 53 51 4c 49 54 45  DllImport(SQLITE
4600: 5f 44 4c 4c 29 5d 0d 0a 23 65 6e 64 69 66 0d 0a  _DLL)]..#endif..
4610: 20 20 20 20 69 6e 74 65 72 6e 61 6c 20 73 74 61      internal sta
4620: 74 69 63 20 65 78 74 65 72 6e 20 49 6e 74 50 74  tic extern IntPt
4630: 72 20 73 71 6c 69 74 65 33 5f 63 6f 6c 75 6d 6e  r sqlite3_column
4640: 5f 62 6c 6f 62 28 49 6e 74 50 74 72 20 73 74 6d  _blob(IntPtr stm
4650: 74 2c 20 69 6e 74 20 69 6e 64 65 78 29 3b 0d 0a  t, int index);..
4660: 0d 0a 23 69 66 20 21 50 4c 41 54 46 4f 52 4d 5f  ..#if !PLATFORM_
4670: 43 4f 4d 50 41 43 54 46 52 41 4d 45 57 4f 52 4b  COMPACTFRAMEWORK
4680: 0d 0a 20 20 20 20 5b 44 6c 6c 49 6d 70 6f 72 74  ..    [DllImport
4690: 28 53 51 4c 49 54 45 5f 44 4c 4c 2c 20 43 61 6c  (SQLITE_DLL, Cal
46a0: 6c 69 6e 67 43 6f 6e 76 65 6e 74 69 6f 6e 20 3d  lingConvention =
46b0: 20 43 61 6c 6c 69 6e 67 43 6f 6e 76 65 6e 74 69   CallingConventi
46c0: 6f 6e 2e 43 64 65 63 6c 29 5d 0d 0a 23 65 6c 73  on.Cdecl)]..#els
46d0: 65 0d 0a 20 20 20 20 5b 44 6c 6c 49 6d 70 6f 72  e..    [DllImpor
46e0: 74 28 53 51 4c 49 54 45 5f 44 4c 4c 29 5d 0d 0a  t(SQLITE_DLL)]..
46f0: 23 65 6e 64 69 66 0d 0a 20 20 20 20 69 6e 74 65  #endif..    inte
4700: 72 6e 61 6c 20 73 74 61 74 69 63 20 65 78 74 65  rnal static exte
4710: 72 6e 20 69 6e 74 20 73 71 6c 69 74 65 33 5f 63  rn int sqlite3_c
4720: 6f 6c 75 6d 6e 5f 62 79 74 65 73 28 49 6e 74 50  olumn_bytes(IntP
4730: 74 72 20 73 74 6d 74 2c 20 69 6e 74 20 69 6e 64  tr stmt, int ind
4740: 65 78 29 3b 0d 0a 0d 0a 23 69 66 20 21 50 4c 41  ex);....#if !PLA
4750: 54 46 4f 52 4d 5f 43 4f 4d 50 41 43 54 46 52 41  TFORM_COMPACTFRA
4760: 4d 45 57 4f 52 4b 0d 0a 20 20 20 20 5b 44 6c 6c  MEWORK..    [Dll
4770: 49 6d 70 6f 72 74 28 53 51 4c 49 54 45 5f 44 4c  Import(SQLITE_DL
4780: 4c 2c 20 43 61 6c 6c 69 6e 67 43 6f 6e 76 65 6e  L, CallingConven
4790: 74 69 6f 6e 20 3d 20 43 61 6c 6c 69 6e 67 43 6f  tion = CallingCo
47a0: 6e 76 65 6e 74 69 6f 6e 2e 43 64 65 63 6c 29 5d  nvention.Cdecl)]
47b0: 0d 0a 23 65 6c 73 65 0d 0a 20 20 20 20 5b 44 6c  ..#else..    [Dl
47c0: 6c 49 6d 70 6f 72 74 28 53 51 4c 49 54 45 5f 44  lImport(SQLITE_D
47d0: 4c 4c 29 5d 0d 0a 23 65 6e 64 69 66 0d 0a 20 20  LL)]..#endif..  
47e0: 20 20 69 6e 74 65 72 6e 61 6c 20 73 74 61 74 69    internal stati
47f0: 63 20 65 78 74 65 72 6e 20 54 79 70 65 41 66 66  c extern TypeAff
4800: 69 6e 69 74 79 20 73 71 6c 69 74 65 33 5f 63 6f  inity sqlite3_co
4810: 6c 75 6d 6e 5f 74 79 70 65 28 49 6e 74 50 74 72  lumn_type(IntPtr
4820: 20 73 74 6d 74 2c 20 69 6e 74 20 69 6e 64 65 78   stmt, int index
4830: 29 3b 0d 0a 0d 0a 23 69 66 20 21 50 4c 41 54 46  );....#if !PLATF
4840: 4f 52 4d 5f 43 4f 4d 50 41 43 54 46 52 41 4d 45  ORM_COMPACTFRAME
4850: 57 4f 52 4b 0d 0a 20 20 20 20 5b 44 6c 6c 49 6d  WORK..    [DllIm
4860: 70 6f 72 74 28 53 51 4c 49 54 45 5f 44 4c 4c 2c  port(SQLITE_DLL,
4870: 20 43 61 6c 6c 69 6e 67 43 6f 6e 76 65 6e 74 69   CallingConventi
4880: 6f 6e 20 3d 20 43 61 6c 6c 69 6e 67 43 6f 6e 76  on = CallingConv
4890: 65 6e 74 69 6f 6e 2e 43 64 65 63 6c 29 5d 0d 0a  ention.Cdecl)]..
48a0: 23 65 6c 73 65 0d 0a 20 20 20 20 5b 44 6c 6c 49  #else..    [DllI
48b0: 6d 70 6f 72 74 28 53 51 4c 49 54 45 5f 44 4c 4c  mport(SQLITE_DLL
48c0: 29 5d 0d 0a 23 65 6e 64 69 66 0d 0a 20 20 20 20  )]..#endif..    
48d0: 69 6e 74 65 72 6e 61 6c 20 73 74 61 74 69 63 20  internal static 
48e0: 65 78 74 65 72 6e 20 69 6e 74 20 73 71 6c 69 74  extern int sqlit
48f0: 65 33 5f 63 72 65 61 74 65 5f 63 6f 6c 6c 61 74  e3_create_collat
4900: 69 6f 6e 28 49 6e 74 50 74 72 20 64 62 2c 20 62  ion(IntPtr db, b
4910: 79 74 65 5b 5d 20 73 74 72 4e 61 6d 65 2c 20 69  yte[] strName, i
4920: 6e 74 20 6e 54 79 70 65 2c 20 49 6e 74 50 74 72  nt nType, IntPtr
4930: 20 70 76 55 73 65 72 2c 20 53 51 4c 69 74 65 43   pvUser, SQLiteC
4940: 6f 6c 6c 61 74 69 6f 6e 20 66 75 6e 63 29 3b 0d  ollation func);.
4950: 0a 0d 0a 23 69 66 20 21 50 4c 41 54 46 4f 52 4d  ...#if !PLATFORM
4960: 5f 43 4f 4d 50 41 43 54 46 52 41 4d 45 57 4f 52  _COMPACTFRAMEWOR
4970: 4b 0d 0a 20 20 20 20 5b 44 6c 6c 49 6d 70 6f 72  K..    [DllImpor
4980: 74 28 53 51 4c 49 54 45 5f 44 4c 4c 2c 20 43 61  t(SQLITE_DLL, Ca
4990: 6c 6c 69 6e 67 43 6f 6e 76 65 6e 74 69 6f 6e 20  llingConvention 
49a0: 3d 20 43 61 6c 6c 69 6e 67 43 6f 6e 76 65 6e 74  = CallingConvent
49b0: 69 6f 6e 2e 43 64 65 63 6c 29 5d 0d 0a 23 65 6c  ion.Cdecl)]..#el
49c0: 73 65 0d 0a 20 20 20 20 5b 44 6c 6c 49 6d 70 6f  se..    [DllImpo
49d0: 72 74 28 53 51 4c 49 54 45 5f 44 4c 4c 29 5d 0d  rt(SQLITE_DLL)].
49e0: 0a 23 65 6e 64 69 66 0d 0a 20 20 20 20 69 6e 74  .#endif..    int
49f0: 65 72 6e 61 6c 20 73 74 61 74 69 63 20 65 78 74  ernal static ext
4a00: 65 72 6e 20 69 6e 74 20 73 71 6c 69 74 65 33 5f  ern int sqlite3_
4a10: 61 67 67 72 65 67 61 74 65 5f 63 6f 75 6e 74 28  aggregate_count(
4a20: 49 6e 74 50 74 72 20 63 6f 6e 74 65 78 74 29 3b  IntPtr context);
4a30: 0d 0a 0d 0a 23 69 66 20 21 50 4c 41 54 46 4f 52  ....#if !PLATFOR
4a40: 4d 5f 43 4f 4d 50 41 43 54 46 52 41 4d 45 57 4f  M_COMPACTFRAMEWO
4a50: 52 4b 0d 0a 20 20 20 20 5b 44 6c 6c 49 6d 70 6f  RK..    [DllImpo
4a60: 72 74 28 53 51 4c 49 54 45 5f 44 4c 4c 2c 20 43  rt(SQLITE_DLL, C
4a70: 61 6c 6c 69 6e 67 43 6f 6e 76 65 6e 74 69 6f 6e  allingConvention
4a80: 20 3d 20 43 61 6c 6c 69 6e 67 43 6f 6e 76 65 6e   = CallingConven
4a90: 74 69 6f 6e 2e 43 64 65 63 6c 29 5d 0d 0a 23 65  tion.Cdecl)]..#e
4aa0: 6c 73 65 0d 0a 20 20 20 20 5b 44 6c 6c 49 6d 70  lse..    [DllImp
4ab0: 6f 72 74 28 53 51 4c 49 54 45 5f 44 4c 4c 29 5d  ort(SQLITE_DLL)]
4ac0: 0d 0a 23 65 6e 64 69 66 0d 0a 20 20 20 20 69 6e  ..#endif..    in
4ad0: 74 65 72 6e 61 6c 20 73 74 61 74 69 63 20 65 78  ternal static ex
4ae0: 74 65 72 6e 20 49 6e 74 50 74 72 20 73 71 6c 69  tern IntPtr sqli
4af0: 74 65 33 5f 76 61 6c 75 65 5f 62 6c 6f 62 28 49  te3_value_blob(I
4b00: 6e 74 50 74 72 20 70 29 3b 0d 0a 0d 0a 23 69 66  ntPtr p);....#if
4b10: 20 21 50 4c 41 54 46 4f 52 4d 5f 43 4f 4d 50 41   !PLATFORM_COMPA
4b20: 43 54 46 52 41 4d 45 57 4f 52 4b 0d 0a 20 20 20  CTFRAMEWORK..   
4b30: 20 5b 44 6c 6c 49 6d 70 6f 72 74 28 53 51 4c 49   [DllImport(SQLI
4b40: 54 45 5f 44 4c 4c 2c 20 43 61 6c 6c 69 6e 67 43  TE_DLL, CallingC
4b50: 6f 6e 76 65 6e 74 69 6f 6e 20 3d 20 43 61 6c 6c  onvention = Call
4b60: 69 6e 67 43 6f 6e 76 65 6e 74 69 6f 6e 2e 43 64  ingConvention.Cd
4b70: 65 63 6c 29 5d 0d 0a 23 65 6c 73 65 0d 0a 20 20  ecl)]..#else..  
4b80: 20 20 5b 44 6c 6c 49 6d 70 6f 72 74 28 53 51 4c    [DllImport(SQL
4b90: 49 54 45 5f 44 4c 4c 29 5d 0d 0a 23 65 6e 64 69  ITE_DLL)]..#endi
4ba0: 66 0d 0a 20 20 20 20 69 6e 74 65 72 6e 61 6c 20  f..    internal 
4bb0: 73 74 61 74 69 63 20 65 78 74 65 72 6e 20 69 6e  static extern in
4bc0: 74 20 73 71 6c 69 74 65 33 5f 76 61 6c 75 65 5f  t sqlite3_value_
4bd0: 62 79 74 65 73 28 49 6e 74 50 74 72 20 70 29 3b  bytes(IntPtr p);
4be0: 0d 0a 0d 0a 23 69 66 20 21 50 4c 41 54 46 4f 52  ....#if !PLATFOR
4bf0: 4d 5f 43 4f 4d 50 41 43 54 46 52 41 4d 45 57 4f  M_COMPACTFRAMEWO
4c00: 52 4b 0d 0a 20 20 20 20 5b 44 6c 6c 49 6d 70 6f  RK..    [DllImpo
4c10: 72 74 28 53 51 4c 49 54 45 5f 44 4c 4c 2c 20 43  rt(SQLITE_DLL, C
4c20: 61 6c 6c 69 6e 67 43 6f 6e 76 65 6e 74 69 6f 6e  allingConvention
4c30: 20 3d 20 43 61 6c 6c 69 6e 67 43 6f 6e 76 65 6e   = CallingConven
4c40: 74 69 6f 6e 2e 43 64 65 63 6c 29 5d 0d 0a 20 20  tion.Cdecl)]..  
4c50: 20 20 69 6e 74 65 72 6e 61 6c 20 73 74 61 74 69    internal stati
4c60: 63 20 65 78 74 65 72 6e 20 64 6f 75 62 6c 65 20  c extern double 
4c70: 73 71 6c 69 74 65 33 5f 76 61 6c 75 65 5f 64 6f  sqlite3_value_do
4c80: 75 62 6c 65 28 49 6e 74 50 74 72 20 70 29 3b 0d  uble(IntPtr p);.
4c90: 0a 23 65 6c 73 65 0d 0a 20 20 20 20 5b 44 6c 6c  .#else..    [Dll
4ca0: 49 6d 70 6f 72 74 28 53 51 4c 49 54 45 5f 44 4c  Import(SQLITE_DL
4cb0: 4c 29 5d 0d 0a 20 20 20 20 69 6e 74 65 72 6e 61  L)]..    interna
4cc0: 6c 20 73 74 61 74 69 63 20 65 78 74 65 72 6e 20  l static extern 
4cd0: 76 6f 69 64 20 73 71 6c 69 74 65 33 5f 76 61 6c  void sqlite3_val
4ce0: 75 65 5f 64 6f 75 62 6c 65 5f 69 6e 74 65 72 6f  ue_double_intero
4cf0: 70 28 49 6e 74 50 74 72 20 70 2c 20 6f 75 74 20  p(IntPtr p, out 
4d00: 64 6f 75 62 6c 65 20 76 61 6c 75 65 29 3b 0d 0a  double value);..
4d10: 23 65 6e 64 69 66 0d 0a 0d 0a 23 69 66 20 21 50  #endif....#if !P
4d20: 4c 41 54 46 4f 52 4d 5f 43 4f 4d 50 41 43 54 46  LATFORM_COMPACTF
4d30: 52 41 4d 45 57 4f 52 4b 0d 0a 20 20 20 20 5b 44  RAMEWORK..    [D
4d40: 6c 6c 49 6d 70 6f 72 74 28 53 51 4c 49 54 45 5f  llImport(SQLITE_
4d50: 44 4c 4c 2c 20 43 61 6c 6c 69 6e 67 43 6f 6e 76  DLL, CallingConv
4d60: 65 6e 74 69 6f 6e 20 3d 20 43 61 6c 6c 69 6e 67  ention = Calling
4d70: 43 6f 6e 76 65 6e 74 69 6f 6e 2e 43 64 65 63 6c  Convention.Cdecl
4d80: 29 5d 0d 0a 23 65 6c 73 65 0d 0a 20 20 20 20 5b  )]..#else..    [
4d90: 44 6c 6c 49 6d 70 6f 72 74 28 53 51 4c 49 54 45  DllImport(SQLITE
4da0: 5f 44 4c 4c 29 5d 0d 0a 23 65 6e 64 69 66 0d 0a  _DLL)]..#endif..
4db0: 20 20 20 20 69 6e 74 65 72 6e 61 6c 20 73 74 61      internal sta
4dc0: 74 69 63 20 65 78 74 65 72 6e 20 69 6e 74 20 73  tic extern int s
4dd0: 71 6c 69 74 65 33 5f 76 61 6c 75 65 5f 69 6e 74  qlite3_value_int
4de0: 28 49 6e 74 50 74 72 20 70 29 3b 0d 0a 0d 0a 23  (IntPtr p);....#
4df0: 69 66 20 21 50 4c 41 54 46 4f 52 4d 5f 43 4f 4d  if !PLATFORM_COM
4e00: 50 41 43 54 46 52 41 4d 45 57 4f 52 4b 0d 0a 20  PACTFRAMEWORK.. 
4e10: 20 20 20 5b 44 6c 6c 49 6d 70 6f 72 74 28 53 51     [DllImport(SQ
4e20: 4c 49 54 45 5f 44 4c 4c 2c 20 43 61 6c 6c 69 6e  LITE_DLL, Callin
4e30: 67 43 6f 6e 76 65 6e 74 69 6f 6e 20 3d 20 43 61  gConvention = Ca
4e40: 6c 6c 69 6e 67 43 6f 6e 76 65 6e 74 69 6f 6e 2e  llingConvention.
4e50: 43 64 65 63 6c 29 5d 0d 0a 20 20 20 20 69 6e 74  Cdecl)]..    int
4e60: 65 72 6e 61 6c 20 73 74 61 74 69 63 20 65 78 74  ernal static ext
4e70: 65 72 6e 20 6c 6f 6e 67 20 73 71 6c 69 74 65 33  ern long sqlite3
4e80: 5f 76 61 6c 75 65 5f 69 6e 74 36 34 28 49 6e 74  _value_int64(Int
4e90: 50 74 72 20 70 29 3b 0d 0a 23 65 6c 73 65 0d 0a  Ptr p);..#else..
4ea0: 20 20 20 20 5b 44 6c 6c 49 6d 70 6f 72 74 28 53      [DllImport(S
4eb0: 51 4c 49 54 45 5f 44 4c 4c 29 5d 0d 0a 20 20 20  QLITE_DLL)]..   
4ec0: 20 69 6e 74 65 72 6e 61 6c 20 73 74 61 74 69 63   internal static
4ed0: 20 65 78 74 65 72 6e 20 76 6f 69 64 20 73 71 6c   extern void sql
4ee0: 69 74 65 33 5f 76 61 6c 75 65 5f 69 6e 74 36 34  ite3_value_int64
4ef0: 5f 69 6e 74 65 72 6f 70 28 49 6e 74 50 74 72 20  _interop(IntPtr 
4f00: 70 2c 20 6f 75 74 20 49 6e 74 36 34 20 76 61 6c  p, out Int64 val
4f10: 75 65 29 3b 0d 0a 23 65 6e 64 69 66 0d 0a 0d 0a  ue);..#endif....
4f20: 23 69 66 20 21 50 4c 41 54 46 4f 52 4d 5f 43 4f  #if !PLATFORM_CO
4f30: 4d 50 41 43 54 46 52 41 4d 45 57 4f 52 4b 0d 0a  MPACTFRAMEWORK..
4f40: 20 20 20 20 5b 44 6c 6c 49 6d 70 6f 72 74 28 53      [DllImport(S
4f50: 51 4c 49 54 45 5f 44 4c 4c 2c 20 43 61 6c 6c 69  QLITE_DLL, Calli
4f60: 6e 67 43 6f 6e 76 65 6e 74 69 6f 6e 20 3d 20 43  ngConvention = C
4f70: 61 6c 6c 69 6e 67 43 6f 6e 76 65 6e 74 69 6f 6e  allingConvention
4f80: 2e 43 64 65 63 6c 29 5d 0d 0a 23 65 6c 73 65 0d  .Cdecl)]..#else.
4f90: 0a 20 20 20 20 5b 44 6c 6c 49 6d 70 6f 72 74 28  .    [DllImport(
4fa0: 53 51 4c 49 54 45 5f 44 4c 4c 29 5d 0d 0a 23 65  SQLITE_DLL)]..#e
4fb0: 6e 64 69 66 0d 0a 20 20 20 20 69 6e 74 65 72 6e  ndif..    intern
4fc0: 61 6c 20 73 74 61 74 69 63 20 65 78 74 65 72 6e  al static extern
4fd0: 20 54 79 70 65 41 66 66 69 6e 69 74 79 20 73 71   TypeAffinity sq
4fe0: 6c 69 74 65 33 5f 76 61 6c 75 65 5f 74 79 70 65  lite3_value_type
4ff0: 28 49 6e 74 50 74 72 20 70 29 3b 0d 0a 0d 0a 23  (IntPtr p);....#
5000: 69 66 20 21 50 4c 41 54 46 4f 52 4d 5f 43 4f 4d  if !PLATFORM_COM
5010: 50 41 43 54 46 52 41 4d 45 57 4f 52 4b 0d 0a 20  PACTFRAMEWORK.. 
5020: 20 20 20 5b 44 6c 6c 49 6d 70 6f 72 74 28 53 51     [DllImport(SQ
5030: 4c 49 54 45 5f 44 4c 4c 2c 20 43 61 6c 6c 69 6e  LITE_DLL, Callin
5040: 67 43 6f 6e 76 65 6e 74 69 6f 6e 20 3d 20 43 61  gConvention = Ca
5050: 6c 6c 69 6e 67 43 6f 6e 76 65 6e 74 69 6f 6e 2e  llingConvention.
5060: 43 64 65 63 6c 29 5d 0d 0a 23 65 6c 73 65 0d 0a  Cdecl)]..#else..
5070: 20 20 20 20 5b 44 6c 6c 49 6d 70 6f 72 74 28 53      [DllImport(S
5080: 51 4c 49 54 45 5f 44 4c 4c 29 5d 0d 0a 23 65 6e  QLITE_DLL)]..#en
5090: 64 69 66 0d 0a 20 20 20 20 69 6e 74 65 72 6e 61  dif..    interna
50a0: 6c 20 73 74 61 74 69 63 20 65 78 74 65 72 6e 20  l static extern 
50b0: 76 6f 69 64 20 73 71 6c 69 74 65 33 5f 72 65 73  void sqlite3_res
50c0: 75 6c 74 5f 62 6c 6f 62 28 49 6e 74 50 74 72 20  ult_blob(IntPtr 
50d0: 63 6f 6e 74 65 78 74 2c 20 62 79 74 65 5b 5d 20  context, byte[] 
50e0: 76 61 6c 75 65 2c 20 69 6e 74 20 6e 53 69 7a 65  value, int nSize
50f0: 2c 20 49 6e 74 50 74 72 20 70 76 52 65 73 65 72  , IntPtr pvReser
5100: 76 65 64 29 3b 0d 0a 0d 0a 23 69 66 20 21 50 4c  ved);....#if !PL
5110: 41 54 46 4f 52 4d 5f 43 4f 4d 50 41 43 54 46 52  ATFORM_COMPACTFR
5120: 41 4d 45 57 4f 52 4b 0d 0a 20 20 20 20 5b 44 6c  AMEWORK..    [Dl
5130: 6c 49 6d 70 6f 72 74 28 53 51 4c 49 54 45 5f 44  lImport(SQLITE_D
5140: 4c 4c 2c 20 43 61 6c 6c 69 6e 67 43 6f 6e 76 65  LL, CallingConve
5150: 6e 74 69 6f 6e 20 3d 20 43 61 6c 6c 69 6e 67 43  ntion = CallingC
5160: 6f 6e 76 65 6e 74 69 6f 6e 2e 43 64 65 63 6c 29  onvention.Cdecl)
5170: 5d 0d 0a 20 20 20 20 69 6e 74 65 72 6e 61 6c 20  ]..    internal 
5180: 73 74 61 74 69 63 20 65 78 74 65 72 6e 20 76 6f  static extern vo
5190: 69 64 20 73 71 6c 69 74 65 33 5f 72 65 73 75 6c  id sqlite3_resul
51a0: 74 5f 64 6f 75 62 6c 65 28 49 6e 74 50 74 72 20  t_double(IntPtr 
51b0: 63 6f 6e 74 65 78 74 2c 20 64 6f 75 62 6c 65 20  context, double 
51c0: 76 61 6c 75 65 29 3b 0d 0a 23 65 6c 73 65 0d 0a  value);..#else..
51d0: 20 20 20 20 5b 44 6c 6c 49 6d 70 6f 72 74 28 53      [DllImport(S
51e0: 51 4c 49 54 45 5f 44 4c 4c 29 5d 0d 0a 20 20 20  QLITE_DLL)]..   
51f0: 20 69 6e 74 65 72 6e 61 6c 20 73 74 61 74 69 63   internal static
5200: 20 65 78 74 65 72 6e 20 76 6f 69 64 20 73 71 6c   extern void sql
5210: 69 74 65 33 5f 72 65 73 75 6c 74 5f 64 6f 75 62  ite3_result_doub
5220: 6c 65 5f 69 6e 74 65 72 6f 70 28 49 6e 74 50 74  le_interop(IntPt
5230: 72 20 63 6f 6e 74 65 78 74 2c 20 72 65 66 20 64  r context, ref d
5240: 6f 75 62 6c 65 20 76 61 6c 75 65 29 3b 0d 0a 23  ouble value);..#
5250: 65 6e 64 69 66 0d 0a 0d 0a 23 69 66 20 21 50 4c  endif....#if !PL
5260: 41 54 46 4f 52 4d 5f 43 4f 4d 50 41 43 54 46 52  ATFORM_COMPACTFR
5270: 41 4d 45 57 4f 52 4b 0d 0a 20 20 20 20 5b 44 6c  AMEWORK..    [Dl
5280: 6c 49 6d 70 6f 72 74 28 53 51 4c 49 54 45 5f 44  lImport(SQLITE_D
5290: 4c 4c 2c 20 43 61 6c 6c 69 6e 67 43 6f 6e 76 65  LL, CallingConve
52a0: 6e 74 69 6f 6e 20 3d 20 43 61 6c 6c 69 6e 67 43  ntion = CallingC
52b0: 6f 6e 76 65 6e 74 69 6f 6e 2e 43 64 65 63 6c 29  onvention.Cdecl)
52c0: 5d 0d 0a 23 65 6c 73 65 0d 0a 20 20 20 20 5b 44  ]..#else..    [D
52d0: 6c 6c 49 6d 70 6f 72 74 28 53 51 4c 49 54 45 5f  llImport(SQLITE_
52e0: 44 4c 4c 29 5d 0d 0a 23 65 6e 64 69 66 0d 0a 20  DLL)]..#endif.. 
52f0: 20 20 20 69 6e 74 65 72 6e 61 6c 20 73 74 61 74     internal stat
5300: 69 63 20 65 78 74 65 72 6e 20 76 6f 69 64 20 73  ic extern void s
5310: 71 6c 69 74 65 33 5f 72 65 73 75 6c 74 5f 65 72  qlite3_result_er
5320: 72 6f 72 28 49 6e 74 50 74 72 20 63 6f 6e 74 65  ror(IntPtr conte
5330: 78 74 2c 20 62 79 74 65 5b 5d 20 73 74 72 45 72  xt, byte[] strEr
5340: 72 2c 20 69 6e 74 20 6e 4c 65 6e 29 3b 0d 0a 0d  r, int nLen);...
5350: 0a 23 69 66 20 21 50 4c 41 54 46 4f 52 4d 5f 43  .#if !PLATFORM_C
5360: 4f 4d 50 41 43 54 46 52 41 4d 45 57 4f 52 4b 0d  OMPACTFRAMEWORK.
5370: 0a 20 20 20 20 5b 44 6c 6c 49 6d 70 6f 72 74 28  .    [DllImport(
5380: 53 51 4c 49 54 45 5f 44 4c 4c 2c 20 43 61 6c 6c  SQLITE_DLL, Call
5390: 69 6e 67 43 6f 6e 76 65 6e 74 69 6f 6e 20 3d 20  ingConvention = 
53a0: 43 61 6c 6c 69 6e 67 43 6f 6e 76 65 6e 74 69 6f  CallingConventio
53b0: 6e 2e 43 64 65 63 6c 29 5d 0d 0a 23 65 6c 73 65  n.Cdecl)]..#else
53c0: 0d 0a 20 20 20 20 5b 44 6c 6c 49 6d 70 6f 72 74  ..    [DllImport
53d0: 28 53 51 4c 49 54 45 5f 44 4c 4c 29 5d 0d 0a 23  (SQLITE_DLL)]..#
53e0: 65 6e 64 69 66 0d 0a 20 20 20 20 69 6e 74 65 72  endif..    inter
53f0: 6e 61 6c 20 73 74 61 74 69 63 20 65 78 74 65 72  nal static exter
5400: 6e 20 76 6f 69 64 20 73 71 6c 69 74 65 33 5f 72  n void sqlite3_r
5410: 65 73 75 6c 74 5f 69 6e 74 28 49 6e 74 50 74 72  esult_int(IntPtr
5420: 20 63 6f 6e 74 65 78 74 2c 20 69 6e 74 20 76 61   context, int va
5430: 6c 75 65 29 3b 0d 0a 0d 0a 23 69 66 20 21 50 4c  lue);....#if !PL
5440: 41 54 46 4f 52 4d 5f 43 4f 4d 50 41 43 54 46 52  ATFORM_COMPACTFR
5450: 41 4d 45 57 4f 52 4b 0d 0a 20 20 20 20 5b 44 6c  AMEWORK..    [Dl
5460: 6c 49 6d 70 6f 72 74 28 53 51 4c 49 54 45 5f 44  lImport(SQLITE_D
5470: 4c 4c 2c 20 43 61 6c 6c 69 6e 67 43 6f 6e 76 65  LL, CallingConve
5480: 6e 74 69 6f 6e 20 3d 20 43 61 6c 6c 69 6e 67 43  ntion = CallingC
5490: 6f 6e 76 65 6e 74 69 6f 6e 2e 43 64 65 63 6c 29  onvention.Cdecl)
54a0: 5d 0d 0a 20 20 20 20 69 6e 74 65 72 6e 61 6c 20  ]..    internal 
54b0: 73 74 61 74 69 63 20 65 78 74 65 72 6e 20 76 6f  static extern vo
54c0: 69 64 20 73 71 6c 69 74 65 33 5f 72 65 73 75 6c  id sqlite3_resul
54d0: 74 5f 69 6e 74 36 34 28 49 6e 74 50 74 72 20 63  t_int64(IntPtr c
54e0: 6f 6e 74 65 78 74 2c 20 6c 6f 6e 67 20 76 61 6c  ontext, long val
54f0: 75 65 29 3b 0d 0a 23 65 6c 73 65 0d 0a 20 20 20  ue);..#else..   
5500: 20 5b 44 6c 6c 49 6d 70 6f 72 74 28 53 51 4c 49   [DllImport(SQLI
5510: 54 45 5f 44 4c 4c 29 5d 0d 0a 20 20 20 20 69 6e  TE_DLL)]..    in
5520: 74 65 72 6e 61 6c 20 73 74 61 74 69 63 20 65 78  ternal static ex
5530: 74 65 72 6e 20 76 6f 69 64 20 73 71 6c 69 74 65  tern void sqlite
5540: 33 5f 72 65 73 75 6c 74 5f 69 6e 74 36 34 5f 69  3_result_int64_i
5550: 6e 74 65 72 6f 70 28 49 6e 74 50 74 72 20 63 6f  nterop(IntPtr co
5560: 6e 74 65 78 74 2c 20 72 65 66 20 49 6e 74 36 34  ntext, ref Int64
5570: 20 76 61 6c 75 65 29 3b 0d 0a 23 65 6e 64 69 66   value);..#endif
5580: 0d 0a 0d 0a 23 69 66 20 21 50 4c 41 54 46 4f 52  ....#if !PLATFOR
5590: 4d 5f 43 4f 4d 50 41 43 54 46 52 41 4d 45 57 4f  M_COMPACTFRAMEWO
55a0: 52 4b 0d 0a 20 20 20 20 5b 44 6c 6c 49 6d 70 6f  RK..    [DllImpo
55b0: 72 74 28 53 51 4c 49 54 45 5f 44 4c 4c 2c 20 43  rt(SQLITE_DLL, C
55c0: 61 6c 6c 69 6e 67 43 6f 6e 76 65 6e 74 69 6f 6e  allingConvention
55d0: 20 3d 20 43 61 6c 6c 69 6e 67 43 6f 6e 76 65 6e   = CallingConven
55e0: 74 69 6f 6e 2e 43 64 65 63 6c 29 5d 0d 0a 23 65  tion.Cdecl)]..#e
55f0: 6c 73 65 0d 0a 20 20 20 20 5b 44 6c 6c 49 6d 70  lse..    [DllImp
5600: 6f 72 74 28 53 51 4c 49 54 45 5f 44 4c 4c 29 5d  ort(SQLITE_DLL)]
5610: 0d 0a 23 65 6e 64 69 66 0d 0a 20 20 20 20 69 6e  ..#endif..    in
5620: 74 65 72 6e 61 6c 20 73 74 61 74 69 63 20 65 78  ternal static ex
5630: 74 65 72 6e 20 76 6f 69 64 20 73 71 6c 69 74 65  tern void sqlite
5640: 33 5f 72 65 73 75 6c 74 5f 6e 75 6c 6c 28 49 6e  3_result_null(In
5650: 74 50 74 72 20 63 6f 6e 74 65 78 74 29 3b 0d 0a  tPtr context);..
5660: 0d 0a 23 69 66 20 21 50 4c 41 54 46 4f 52 4d 5f  ..#if !PLATFORM_
5670: 43 4f 4d 50 41 43 54 46 52 41 4d 45 57 4f 52 4b  COMPACTFRAMEWORK
5680: 0d 0a 20 20 20 20 5b 44 6c 6c 49 6d 70 6f 72 74  ..    [DllImport
5690: 28 53 51 4c 49 54 45 5f 44 4c 4c 2c 20 43 61 6c  (SQLITE_DLL, Cal
56a0: 6c 69 6e 67 43 6f 6e 76 65 6e 74 69 6f 6e 20 3d  lingConvention =
56b0: 20 43 61 6c 6c 69 6e 67 43 6f 6e 76 65 6e 74 69   CallingConventi
56c0: 6f 6e 2e 43 64 65 63 6c 29 5d 0d 0a 23 65 6c 73  on.Cdecl)]..#els
56d0: 65 0d 0a 20 20 20 20 5b 44 6c 6c 49 6d 70 6f 72  e..    [DllImpor
56e0: 74 28 53 51 4c 49 54 45 5f 44 4c 4c 29 5d 0d 0a  t(SQLITE_DLL)]..
56f0: 23 65 6e 64 69 66 0d 0a 20 20 20 20 69 6e 74 65  #endif..    inte
5700: 72 6e 61 6c 20 73 74 61 74 69 63 20 65 78 74 65  rnal static exte
5710: 72 6e 20 76 6f 69 64 20 73 71 6c 69 74 65 33 5f  rn void sqlite3_
5720: 72 65 73 75 6c 74 5f 74 65 78 74 28 49 6e 74 50  result_text(IntP
5730: 74 72 20 63 6f 6e 74 65 78 74 2c 20 62 79 74 65  tr context, byte
5740: 5b 5d 20 76 61 6c 75 65 2c 20 69 6e 74 20 6e 4c  [] value, int nL
5750: 65 6e 2c 20 49 6e 74 50 74 72 20 70 76 52 65 73  en, IntPtr pvRes
5760: 65 72 76 65 64 29 3b 0d 0a 0d 0a 23 69 66 20 21  erved);....#if !
5770: 50 4c 41 54 46 4f 52 4d 5f 43 4f 4d 50 41 43 54  PLATFORM_COMPACT
5780: 46 52 41 4d 45 57 4f 52 4b 0d 0a 20 20 20 20 5b  FRAMEWORK..    [
5790: 44 6c 6c 49 6d 70 6f 72 74 28 53 51 4c 49 54 45  DllImport(SQLITE
57a0: 5f 44 4c 4c 2c 20 43 61 6c 6c 69 6e 67 43 6f 6e  _DLL, CallingCon
57b0: 76 65 6e 74 69 6f 6e 20 3d 20 43 61 6c 6c 69 6e  vention = Callin
57c0: 67 43 6f 6e 76 65 6e 74 69 6f 6e 2e 43 64 65 63  gConvention.Cdec
57d0: 6c 29 5d 0d 0a 23 65 6c 73 65 0d 0a 20 20 20 20  l)]..#else..    
57e0: 5b 44 6c 6c 49 6d 70 6f 72 74 28 53 51 4c 49 54  [DllImport(SQLIT
57f0: 45 5f 44 4c 4c 29 5d 0d 0a 23 65 6e 64 69 66 0d  E_DLL)]..#endif.
5800: 0a 20 20 20 20 69 6e 74 65 72 6e 61 6c 20 73 74  .    internal st
5810: 61 74 69 63 20 65 78 74 65 72 6e 20 49 6e 74 50  atic extern IntP
5820: 74 72 20 73 71 6c 69 74 65 33 5f 61 67 67 72 65  tr sqlite3_aggre
5830: 67 61 74 65 5f 63 6f 6e 74 65 78 74 28 49 6e 74  gate_context(Int
5840: 50 74 72 20 63 6f 6e 74 65 78 74 2c 20 69 6e 74  Ptr context, int
5850: 20 6e 42 79 74 65 73 29 3b 0d 0a 0d 0a 23 69 66   nBytes);....#if
5860: 20 21 50 4c 41 54 46 4f 52 4d 5f 43 4f 4d 50 41   !PLATFORM_COMPA
5870: 43 54 46 52 41 4d 45 57 4f 52 4b 0d 0a 20 20 20  CTFRAMEWORK..   
5880: 20 5b 44 6c 6c 49 6d 70 6f 72 74 28 53 51 4c 49   [DllImport(SQLI
5890: 54 45 5f 44 4c 4c 2c 20 43 61 6c 6c 69 6e 67 43  TE_DLL, CallingC
58a0: 6f 6e 76 65 6e 74 69 6f 6e 20 3d 20 43 61 6c 6c  onvention = Call
58b0: 69 6e 67 43 6f 6e 76 65 6e 74 69 6f 6e 2e 43 64  ingConvention.Cd
58c0: 65 63 6c 2c 20 43 68 61 72 53 65 74 20 3d 20 43  ecl, CharSet = C
58d0: 68 61 72 53 65 74 2e 55 6e 69 63 6f 64 65 29 5d  harSet.Unicode)]
58e0: 0d 0a 23 65 6c 73 65 0d 0a 20 20 20 20 5b 44 6c  ..#else..    [Dl
58f0: 6c 49 6d 70 6f 72 74 28 53 51 4c 49 54 45 5f 44  lImport(SQLITE_D
5900: 4c 4c 2c 20 43 68 61 72 53 65 74 20 3d 20 43 68  LL, CharSet = Ch
5910: 61 72 53 65 74 2e 55 6e 69 63 6f 64 65 29 5d 0d  arSet.Unicode)].
5920: 0a 23 65 6e 64 69 66 0d 0a 20 20 20 20 69 6e 74  .#endif..    int
5930: 65 72 6e 61 6c 20 73 74 61 74 69 63 20 65 78 74  ernal static ext
5940: 65 72 6e 20 69 6e 74 20 73 71 6c 69 74 65 33 5f  ern int sqlite3_
5950: 62 69 6e 64 5f 74 65 78 74 31 36 28 49 6e 74 50  bind_text16(IntP
5960: 74 72 20 73 74 6d 74 2c 20 69 6e 74 20 69 6e 64  tr stmt, int ind
5970: 65 78 2c 20 73 74 72 69 6e 67 20 76 61 6c 75 65  ex, string value
5980: 2c 20 69 6e 74 20 6e 6c 65 6e 2c 20 49 6e 74 50  , int nlen, IntP
5990: 74 72 20 70 76 52 65 73 65 72 76 65 64 29 3b 0d  tr pvReserved);.
59a0: 0a 0d 0a 23 69 66 20 21 50 4c 41 54 46 4f 52 4d  ...#if !PLATFORM
59b0: 5f 43 4f 4d 50 41 43 54 46 52 41 4d 45 57 4f 52  _COMPACTFRAMEWOR
59c0: 4b 0d 0a 20 20 20 20 5b 44 6c 6c 49 6d 70 6f 72  K..    [DllImpor
59d0: 74 28 53 51 4c 49 54 45 5f 44 4c 4c 2c 20 43 61  t(SQLITE_DLL, Ca
59e0: 6c 6c 69 6e 67 43 6f 6e 76 65 6e 74 69 6f 6e 20  llingConvention 
59f0: 3d 20 43 61 6c 6c 69 6e 67 43 6f 6e 76 65 6e 74  = CallingConvent
5a00: 69 6f 6e 2e 43 64 65 63 6c 2c 20 43 68 61 72 53  ion.Cdecl, CharS
5a10: 65 74 20 3d 20 43 68 61 72 53 65 74 2e 55 6e 69  et = CharSet.Uni
5a20: 63 6f 64 65 29 5d 0d 0a 23 65 6c 73 65 0d 0a 20  code)]..#else.. 
5a30: 20 20 20 5b 44 6c 6c 49 6d 70 6f 72 74 28 53 51     [DllImport(SQ
5a40: 4c 49 54 45 5f 44 4c 4c 2c 20 43 68 61 72 53 65  LITE_DLL, CharSe
5a50: 74 20 3d 20 43 68 61 72 53 65 74 2e 55 6e 69 63  t = CharSet.Unic
5a60: 6f 64 65 29 5d 0d 0a 23 65 6e 64 69 66 0d 0a 20  ode)]..#endif.. 
5a70: 20 20 20 69 6e 74 65 72 6e 61 6c 20 73 74 61 74     internal stat
5a80: 69 63 20 65 78 74 65 72 6e 20 76 6f 69 64 20 73  ic extern void s
5a90: 71 6c 69 74 65 33 5f 72 65 73 75 6c 74 5f 65 72  qlite3_result_er
5aa0: 72 6f 72 31 36 28 49 6e 74 50 74 72 20 63 6f 6e  ror16(IntPtr con
5ab0: 74 65 78 74 2c 20 73 74 72 69 6e 67 20 73 74 72  text, string str
5ac0: 4e 61 6d 65 2c 20 69 6e 74 20 6e 4c 65 6e 29 3b  Name, int nLen);
5ad0: 0d 0a 0d 0a 23 69 66 20 21 50 4c 41 54 46 4f 52  ....#if !PLATFOR
5ae0: 4d 5f 43 4f 4d 50 41 43 54 46 52 41 4d 45 57 4f  M_COMPACTFRAMEWO
5af0: 52 4b 0d 0a 20 20 20 20 5b 44 6c 6c 49 6d 70 6f  RK..    [DllImpo
5b00: 72 74 28 53 51 4c 49 54 45 5f 44 4c 4c 2c 20 43  rt(SQLITE_DLL, C
5b10: 61 6c 6c 69 6e 67 43 6f 6e 76 65 6e 74 69 6f 6e  allingConvention
5b20: 20 3d 20 43 61 6c 6c 69 6e 67 43 6f 6e 76 65 6e   = CallingConven
5b30: 74 69 6f 6e 2e 43 64 65 63 6c 2c 20 43 68 61 72  tion.Cdecl, Char
5b40: 53 65 74 20 3d 20 43 68 61 72 53 65 74 2e 55 6e  Set = CharSet.Un
5b50: 69 63 6f 64 65 29 5d 0d 0a 23 65 6c 73 65 0d 0a  icode)]..#else..
5b60: 20 20 20 20 5b 44 6c 6c 49 6d 70 6f 72 74 28 53      [DllImport(S
5b70: 51 4c 49 54 45 5f 44 4c 4c 2c 20 43 68 61 72 53  QLITE_DLL, CharS
5b80: 65 74 20 3d 20 43 68 61 72 53 65 74 2e 55 6e 69  et = CharSet.Uni
5b90: 63 6f 64 65 29 5d 0d 0a 23 65 6e 64 69 66 0d 0a  code)]..#endif..
5ba0: 20 20 20 20 69 6e 74 65 72 6e 61 6c 20 73 74 61      internal sta
5bb0: 74 69 63 20 65 78 74 65 72 6e 20 76 6f 69 64 20  tic extern void 
5bc0: 73 71 6c 69 74 65 33 5f 72 65 73 75 6c 74 5f 74  sqlite3_result_t
5bd0: 65 78 74 31 36 28 49 6e 74 50 74 72 20 63 6f 6e  ext16(IntPtr con
5be0: 74 65 78 74 2c 20 73 74 72 69 6e 67 20 73 74 72  text, string str
5bf0: 4e 61 6d 65 2c 20 69 6e 74 20 6e 4c 65 6e 2c 20  Name, int nLen, 
5c00: 49 6e 74 50 74 72 20 70 76 52 65 73 65 72 76 65  IntPtr pvReserve
5c10: 64 29 3b 0d 0a 0d 0a 23 69 66 20 21 50 4c 41 54  d);....#if !PLAT
5c20: 46 4f 52 4d 5f 43 4f 4d 50 41 43 54 46 52 41 4d  FORM_COMPACTFRAM
5c30: 45 57 4f 52 4b 0d 0a 20 20 20 20 5b 44 6c 6c 49  EWORK..    [DllI
5c40: 6d 70 6f 72 74 28 53 51 4c 49 54 45 5f 44 4c 4c  mport(SQLITE_DLL
5c50: 2c 20 43 61 6c 6c 69 6e 67 43 6f 6e 76 65 6e 74  , CallingConvent
5c60: 69 6f 6e 20 3d 20 43 61 6c 6c 69 6e 67 43 6f 6e  ion = CallingCon
5c70: 76 65 6e 74 69 6f 6e 2e 43 64 65 63 6c 29 5d 0d  vention.Cdecl)].
5c80: 0a 23 65 6c 73 65 0d 0a 20 20 20 20 5b 44 6c 6c  .#else..    [Dll
5c90: 49 6d 70 6f 72 74 28 53 51 4c 49 54 45 5f 44 4c  Import(SQLITE_DL
5ca0: 4c 29 5d 0d 0a 23 65 6e 64 69 66 0d 0a 20 20 20  L)]..#endif..   
5cb0: 20 69 6e 74 65 72 6e 61 6c 20 73 74 61 74 69 63   internal static
5cc0: 20 65 78 74 65 72 6e 20 69 6e 74 20 73 71 6c 69   extern int sqli
5cd0: 74 65 33 5f 6b 65 79 28 49 6e 74 50 74 72 20 64  te3_key(IntPtr d
5ce0: 62 2c 20 62 79 74 65 5b 5d 20 6b 65 79 2c 20 69  b, byte[] key, i
5cf0: 6e 74 20 6b 65 79 6c 65 6e 29 3b 0d 0a 0d 0a 23  nt keylen);....#
5d00: 69 66 20 21 50 4c 41 54 46 4f 52 4d 5f 43 4f 4d  if !PLATFORM_COM
5d10: 50 41 43 54 46 52 41 4d 45 57 4f 52 4b 0d 0a 20  PACTFRAMEWORK.. 
5d20: 20 20 20 5b 44 6c 6c 49 6d 70 6f 72 74 28 53 51     [DllImport(SQ
5d30: 4c 49 54 45 5f 44 4c 4c 2c 20 43 61 6c 6c 69 6e  LITE_DLL, Callin
5d40: 67 43 6f 6e 76 65 6e 74 69 6f 6e 20 3d 20 43 61  gConvention = Ca
5d50: 6c 6c 69 6e 67 43 6f 6e 76 65 6e 74 69 6f 6e 2e  llingConvention.
5d60: 43 64 65 63 6c 29 5d 0d 0a 23 65 6c 73 65 0d 0a  Cdecl)]..#else..
5d70: 20 20 20 20 5b 44 6c 6c 49 6d 70 6f 72 74 28 53      [DllImport(S
5d80: 51 4c 49 54 45 5f 44 4c 4c 29 5d 0d 0a 23 65 6e  QLITE_DLL)]..#en
5d90: 64 69 66 0d 0a 20 20 20 20 69 6e 74 65 72 6e 61  dif..    interna
5da0: 6c 20 73 74 61 74 69 63 20 65 78 74 65 72 6e 20  l static extern 
5db0: 69 6e 74 20 73 71 6c 69 74 65 33 5f 72 65 6b 65  int sqlite3_reke
5dc0: 79 28 49 6e 74 50 74 72 20 64 62 2c 20 62 79 74  y(IntPtr db, byt
5dd0: 65 5b 5d 20 6b 65 79 2c 20 69 6e 74 20 6b 65 79  e[] key, int key
5de0: 6c 65 6e 29 3b 0d 0a 0d 0a 23 69 66 20 21 50 4c  len);....#if !PL
5df0: 41 54 46 4f 52 4d 5f 43 4f 4d 50 41 43 54 46 52  ATFORM_COMPACTFR
5e00: 41 4d 45 57 4f 52 4b 0d 0a 20 20 20 20 5b 44 6c  AMEWORK..    [Dl
5e10: 6c 49 6d 70 6f 72 74 28 53 51 4c 49 54 45 5f 44  lImport(SQLITE_D
5e20: 4c 4c 2c 20 43 61 6c 6c 69 6e 67 43 6f 6e 76 65  LL, CallingConve
5e30: 6e 74 69 6f 6e 20 3d 20 43 61 6c 6c 69 6e 67 43  ntion = CallingC
5e40: 6f 6e 76 65 6e 74 69 6f 6e 2e 43 64 65 63 6c 29  onvention.Cdecl)
5e50: 5d 0d 0a 23 65 6c 73 65 0d 0a 20 20 20 20 5b 44  ]..#else..    [D
5e60: 6c 6c 49 6d 70 6f 72 74 28 53 51 4c 49 54 45 5f  llImport(SQLITE_
5e70: 44 4c 4c 29 5d 0d 0a 23 65 6e 64 69 66 0d 0a 20  DLL)]..#endif.. 
5e80: 20 20 20 69 6e 74 65 72 6e 61 6c 20 73 74 61 74     internal stat
5e90: 69 63 20 65 78 74 65 72 6e 20 49 6e 74 50 74 72  ic extern IntPtr
5ea0: 20 73 71 6c 69 74 65 33 5f 75 70 64 61 74 65 5f   sqlite3_update_
5eb0: 68 6f 6f 6b 28 49 6e 74 50 74 72 20 64 62 2c 20  hook(IntPtr db, 
5ec0: 53 51 4c 69 74 65 55 70 64 61 74 65 43 61 6c 6c  SQLiteUpdateCall
5ed0: 62 61 63 6b 20 66 75 6e 63 2c 20 49 6e 74 50 74  back func, IntPt
5ee0: 72 20 70 76 55 73 65 72 29 3b 0d 0a 0d 0a 23 69  r pvUser);....#i
5ef0: 66 20 21 50 4c 41 54 46 4f 52 4d 5f 43 4f 4d 50  f !PLATFORM_COMP
5f00: 41 43 54 46 52 41 4d 45 57 4f 52 4b 0d 0a 20 20  ACTFRAMEWORK..  
5f10: 20 20 5b 44 6c 6c 49 6d 70 6f 72 74 28 53 51 4c    [DllImport(SQL
5f20: 49 54 45 5f 44 4c 4c 2c 20 43 61 6c 6c 69 6e 67  ITE_DLL, Calling
5f30: 43 6f 6e 76 65 6e 74 69 6f 6e 20 3d 20 43 61 6c  Convention = Cal
5f40: 6c 69 6e 67 43 6f 6e 76 65 6e 74 69 6f 6e 2e 43  lingConvention.C
5f50: 64 65 63 6c 29 5d 0d 0a 23 65 6c 73 65 0d 0a 20  decl)]..#else.. 
5f60: 20 20 20 5b 44 6c 6c 49 6d 70 6f 72 74 28 53 51     [DllImport(SQ
5f70: 4c 49 54 45 5f 44 4c 4c 29 5d 0d 0a 23 65 6e 64  LITE_DLL)]..#end
5f80: 69 66 0d 0a 20 20 20 20 69 6e 74 65 72 6e 61 6c  if..    internal
5f90: 20 73 74 61 74 69 63 20 65 78 74 65 72 6e 20 49   static extern I
5fa0: 6e 74 50 74 72 20 73 71 6c 69 74 65 33 5f 63 6f  ntPtr sqlite3_co
5fb0: 6d 6d 69 74 5f 68 6f 6f 6b 28 49 6e 74 50 74 72  mmit_hook(IntPtr
5fc0: 20 64 62 2c 20 53 51 4c 69 74 65 43 6f 6d 6d 69   db, SQLiteCommi
5fd0: 74 43 61 6c 6c 62 61 63 6b 20 66 75 6e 63 2c 20  tCallback func, 
5fe0: 49 6e 74 50 74 72 20 70 76 55 73 65 72 29 3b 0d  IntPtr pvUser);.
5ff0: 0a 0d 0a 23 69 66 20 21 50 4c 41 54 46 4f 52 4d  ...#if !PLATFORM
6000: 5f 43 4f 4d 50 41 43 54 46 52 41 4d 45 57 4f 52  _COMPACTFRAMEWOR
6010: 4b 0d 0a 20 20 20 20 5b 44 6c 6c 49 6d 70 6f 72  K..    [DllImpor
6020: 74 28 53 51 4c 49 54 45 5f 44 4c 4c 2c 20 43 61  t(SQLITE_DLL, Ca
6030: 6c 6c 69 6e 67 43 6f 6e 76 65 6e 74 69 6f 6e 20  llingConvention 
6040: 3d 20 43 61 6c 6c 69 6e 67 43 6f 6e 76 65 6e 74  = CallingConvent
6050: 69 6f 6e 2e 43 64 65 63 6c 29 5d 0d 0a 23 65 6c  ion.Cdecl)]..#el
6060: 73 65 0d 0a 20 20 20 20 5b 44 6c 6c 49 6d 70 6f  se..    [DllImpo
6070: 72 74 28 53 51 4c 49 54 45 5f 44 4c 4c 29 5d 0d  rt(SQLITE_DLL)].
6080: 0a 23 65 6e 64 69 66 0d 0a 20 20 20 20 69 6e 74  .#endif..    int
6090: 65 72 6e 61 6c 20 73 74 61 74 69 63 20 65 78 74  ernal static ext
60a0: 65 72 6e 20 49 6e 74 50 74 72 20 73 71 6c 69 74  ern IntPtr sqlit
60b0: 65 33 5f 74 72 61 63 65 28 49 6e 74 50 74 72 20  e3_trace(IntPtr 
60c0: 64 62 2c 20 53 51 4c 69 74 65 54 72 61 63 65 43  db, SQLiteTraceC
60d0: 61 6c 6c 62 61 63 6b 20 66 75 6e 63 2c 20 49 6e  allback func, In
60e0: 74 50 74 72 20 70 76 55 73 65 72 29 3b 0d 0a 0d  tPtr pvUser);...
60f0: 0a 23 69 66 20 21 50 4c 41 54 46 4f 52 4d 5f 43  .#if !PLATFORM_C
6100: 4f 4d 50 41 43 54 46 52 41 4d 45 57 4f 52 4b 0d  OMPACTFRAMEWORK.
6110: 0a 20 20 20 20 5b 44 6c 6c 49 6d 70 6f 72 74 28  .    [DllImport(
6120: 53 51 4c 49 54 45 5f 44 4c 4c 2c 20 43 61 6c 6c  SQLITE_DLL, Call
6130: 69 6e 67 43 6f 6e 76 65 6e 74 69 6f 6e 20 3d 20  ingConvention = 
6140: 43 61 6c 6c 69 6e 67 43 6f 6e 76 65 6e 74 69 6f  CallingConventio
6150: 6e 2e 43 64 65 63 6c 29 5d 0d 0a 23 65 6c 73 65  n.Cdecl)]..#else
6160: 0d 0a 20 20 20 20 5b 44 6c 6c 49 6d 70 6f 72 74  ..    [DllImport
6170: 28 53 51 4c 49 54 45 5f 44 4c 4c 29 5d 0d 0a 23  (SQLITE_DLL)]..#
6180: 65 6e 64 69 66 0d 0a 20 20 20 20 69 6e 74 65 72  endif..    inter
6190: 6e 61 6c 20 73 74 61 74 69 63 20 65 78 74 65 72  nal static exter
61a0: 6e 20 49 6e 74 50 74 72 20 73 71 6c 69 74 65 33  n IntPtr sqlite3
61b0: 5f 72 6f 6c 6c 62 61 63 6b 5f 68 6f 6f 6b 28 49  _rollback_hook(I
61c0: 6e 74 50 74 72 20 64 62 2c 20 53 51 4c 69 74 65  ntPtr db, SQLite
61d0: 52 6f 6c 6c 62 61 63 6b 43 61 6c 6c 62 61 63 6b  RollbackCallback
61e0: 20 66 75 6e 63 2c 20 49 6e 74 50 74 72 20 70 76   func, IntPtr pv
61f0: 55 73 65 72 29 3b 0d 0a 0d 0a 23 69 66 20 21 50  User);....#if !P
6200: 4c 41 54 46 4f 52 4d 5f 43 4f 4d 50 41 43 54 46  LATFORM_COMPACTF
6210: 52 41 4d 45 57 4f 52 4b 0d 0a 20 20 20 20 5b 44  RAMEWORK..    [D
6220: 6c 6c 49 6d 70 6f 72 74 28 53 51 4c 49 54 45 5f  llImport(SQLITE_
6230: 44 4c 4c 2c 20 43 61 6c 6c 69 6e 67 43 6f 6e 76  DLL, CallingConv
6240: 65 6e 74 69 6f 6e 20 3d 20 43 61 6c 6c 69 6e 67  ention = Calling
6250: 43 6f 6e 76 65 6e 74 69 6f 6e 2e 43 64 65 63 6c  Convention.Cdecl
6260: 29 5d 0d 0a 23 65 6c 73 65 0d 0a 20 20 20 20 5b  )]..#else..    [
6270: 44 6c 6c 49 6d 70 6f 72 74 28 53 51 4c 49 54 45  DllImport(SQLITE
6280: 5f 44 4c 4c 29 5d 0d 0a 23 65 6e 64 69 66 0d 0a  _DLL)]..#endif..
6290: 20 20 20 20 69 6e 74 65 72 6e 61 6c 20 73 74 61      internal sta
62a0: 74 69 63 20 65 78 74 65 72 6e 20 49 6e 74 50 74  tic extern IntPt
62b0: 72 20 73 71 6c 69 74 65 33 5f 64 62 5f 68 61 6e  r sqlite3_db_han
62c0: 64 6c 65 28 49 6e 74 50 74 72 20 73 74 6d 74 29  dle(IntPtr stmt)
62d0: 3b 0d 0a 0d 0a 23 69 66 20 21 50 4c 41 54 46 4f  ;....#if !PLATFO
62e0: 52 4d 5f 43 4f 4d 50 41 43 54 46 52 41 4d 45 57  RM_COMPACTFRAMEW
62f0: 4f 52 4b 0d 0a 20 20 20 20 5b 44 6c 6c 49 6d 70  ORK..    [DllImp
6300: 6f 72 74 28 53 51 4c 49 54 45 5f 44 4c 4c 2c 20  ort(SQLITE_DLL, 
6310: 43 61 6c 6c 69 6e 67 43 6f 6e 76 65 6e 74 69 6f  CallingConventio
6320: 6e 20 3d 20 43 61 6c 6c 69 6e 67 43 6f 6e 76 65  n = CallingConve
6330: 6e 74 69 6f 6e 2e 43 64 65 63 6c 29 5d 0d 0a 23  ntion.Cdecl)]..#
6340: 65 6c 73 65 0d 0a 20 20 20 20 5b 44 6c 6c 49 6d  else..    [DllIm
6350: 70 6f 72 74 28 53 51 4c 49 54 45 5f 44 4c 4c 29  port(SQLITE_DLL)
6360: 5d 0d 0a 23 65 6e 64 69 66 0d 0a 20 20 20 20 69  ]..#endif..    i
6370: 6e 74 65 72 6e 61 6c 20 73 74 61 74 69 63 20 65  nternal static e
6380: 78 74 65 72 6e 20 49 6e 74 50 74 72 20 73 71 6c  xtern IntPtr sql
6390: 69 74 65 33 5f 6e 65 78 74 5f 73 74 6d 74 28 49  ite3_next_stmt(I
63a0: 6e 74 50 74 72 20 64 62 2c 20 49 6e 74 50 74 72  ntPtr db, IntPtr
63b0: 20 73 74 6d 74 29 3b 0d 0a 0d 0a 23 69 66 20 21   stmt);....#if !
63c0: 50 4c 41 54 46 4f 52 4d 5f 43 4f 4d 50 41 43 54  PLATFORM_COMPACT
63d0: 46 52 41 4d 45 57 4f 52 4b 0d 0a 20 20 20 20 5b  FRAMEWORK..    [
63e0: 44 6c 6c 49 6d 70 6f 72 74 28 53 51 4c 49 54 45  DllImport(SQLITE
63f0: 5f 44 4c 4c 2c 20 43 61 6c 6c 69 6e 67 43 6f 6e  _DLL, CallingCon
6400: 76 65 6e 74 69 6f 6e 20 3d 20 43 61 6c 6c 69 6e  vention = Callin
6410: 67 43 6f 6e 76 65 6e 74 69 6f 6e 2e 43 64 65 63  gConvention.Cdec
6420: 6c 29 5d 0d 0a 23 65 6c 73 65 0d 0a 20 20 20 20  l)]..#else..    
6430: 5b 44 6c 6c 49 6d 70 6f 72 74 28 53 51 4c 49 54  [DllImport(SQLIT
6440: 45 5f 44 4c 4c 29 5d 0d 0a 23 65 6e 64 69 66 0d  E_DLL)]..#endif.
6450: 0a 20 20 20 20 69 6e 74 65 72 6e 61 6c 20 73 74  .    internal st
6460: 61 74 69 63 20 65 78 74 65 72 6e 20 69 6e 74 20  atic extern int 
6470: 73 71 6c 69 74 65 33 5f 65 78 65 63 28 49 6e 74  sqlite3_exec(Int
6480: 50 74 72 20 64 62 2c 20 62 79 74 65 5b 5d 20 73  Ptr db, byte[] s
6490: 74 72 53 71 6c 2c 20 49 6e 74 50 74 72 20 70 76  trSql, IntPtr pv
64a0: 43 61 6c 6c 62 61 63 6b 2c 20 49 6e 74 50 74 72  Callback, IntPtr
64b0: 20 70 76 50 61 72 61 6d 2c 20 6f 75 74 20 49 6e   pvParam, out In
64c0: 74 50 74 72 20 65 72 72 4d 73 67 29 3b 0d 0a 0d  tPtr errMsg);...
64d0: 0a 23 69 66 20 21 50 4c 41 54 46 4f 52 4d 5f 43  .#if !PLATFORM_C
64e0: 4f 4d 50 41 43 54 46 52 41 4d 45 57 4f 52 4b 0d  OMPACTFRAMEWORK.
64f0: 0a 20 20 20 20 5b 44 6c 6c 49 6d 70 6f 72 74 28  .    [DllImport(
6500: 53 51 4c 49 54 45 5f 44 4c 4c 2c 20 43 61 6c 6c  SQLITE_DLL, Call
6510: 69 6e 67 43 6f 6e 76 65 6e 74 69 6f 6e 20 3d 20  ingConvention = 
6520: 43 61 6c 6c 69 6e 67 43 6f 6e 76 65 6e 74 69 6f  CallingConventio
6530: 6e 2e 43 64 65 63 6c 29 5d 0d 0a 23 65 6c 73 65  n.Cdecl)]..#else
6540: 0d 0a 20 20 20 20 5b 44 6c 6c 49 6d 70 6f 72 74  ..    [DllImport
6550: 28 53 51 4c 49 54 45 5f 44 4c 4c 29 5d 0d 0a 23  (SQLITE_DLL)]..#
6560: 65 6e 64 69 66 0d 0a 20 20 20 20 69 6e 74 65 72  endif..    inter
6570: 6e 61 6c 20 73 74 61 74 69 63 20 65 78 74 65 72  nal static exter
6580: 6e 20 69 6e 74 20 73 71 6c 69 74 65 33 5f 67 65  n int sqlite3_ge
6590: 74 5f 61 75 74 6f 63 6f 6d 6d 69 74 28 49 6e 74  t_autocommit(Int
65a0: 50 74 72 20 64 62 29 3b 0d 0a 0d 0a 20 20 20 20  Ptr db);....    
65b0: 23 65 6e 64 72 65 67 69 6f 6e 0d 0a 20 20 7d 0d  #endregion..  }.
65c0: 0a 0d 0a 23 69 66 20 50 4c 41 54 46 4f 52 4d 5f  ...#if PLATFORM_
65d0: 43 4f 4d 50 41 43 54 46 52 41 4d 45 57 4f 52 4b  COMPACTFRAMEWORK
65e0: 0d 0a 20 20 69 6e 74 65 72 6e 61 6c 20 61 62 73  ..  internal abs
65f0: 74 72 61 63 74 20 63 6c 61 73 73 20 43 72 69 74  tract class Crit
6600: 69 63 61 6c 48 61 6e 64 6c 65 20 3a 20 49 44 69  icalHandle : IDi
6610: 73 70 6f 73 61 62 6c 65 0d 0a 20 20 7b 0d 0a 20  sposable..  {.. 
6620: 20 20 20 70 72 69 76 61 74 65 20 62 6f 6f 6c 20     private bool 
6630: 5f 69 73 43 6c 6f 73 65 64 3b 0d 0a 20 20 20 20  _isClosed;..    
6640: 70 72 6f 74 65 63 74 65 64 20 49 6e 74 50 74 72  protected IntPtr
6650: 20 68 61 6e 64 6c 65 3b 0d 0a 20 20 20 20 0d 0a   handle;..    ..
6660: 20 20 20 20 70 72 6f 74 65 63 74 65 64 20 43 72      protected Cr
6670: 69 74 69 63 61 6c 48 61 6e 64 6c 65 28 49 6e 74  iticalHandle(Int
6680: 50 74 72 20 69 6e 76 61 6c 69 64 48 61 6e 64 6c  Ptr invalidHandl
6690: 65 56 61 6c 75 65 29 0d 0a 20 20 20 20 7b 0d 0a  eValue)..    {..
66a0: 20 20 20 20 20 20 68 61 6e 64 6c 65 20 3d 20 69        handle = i
66b0: 6e 76 61 6c 69 64 48 61 6e 64 6c 65 56 61 6c 75  nvalidHandleValu
66c0: 65 3b 0d 0a 20 20 20 20 20 20 5f 69 73 43 6c 6f  e;..      _isClo
66d0: 73 65 64 20 3d 20 66 61 6c 73 65 3b 0d 0a 20 20  sed = false;..  
66e0: 20 20 7d 0d 0a 0d 0a 20 20 20 20 7e 43 72 69 74    }....    ~Crit
66f0: 69 63 61 6c 48 61 6e 64 6c 65 28 29 0d 0a 20 20  icalHandle()..  
6700: 20 20 7b 0d 0a 20 20 20 20 20 20 44 69 73 70 6f    {..      Dispo
6710: 73 65 28 66 61 6c 73 65 29 3b 0d 0a 20 20 20 20  se(false);..    
6720: 7d 0d 0a 0d 0a 20 20 20 20 70 72 69 76 61 74 65  }....    private
6730: 20 76 6f 69 64 20 43 6c 65 61 6e 75 70 28 29 0d   void Cleanup().
6740: 0a 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 69 66  .    {..      if
6750: 20 28 21 49 73 43 6c 6f 73 65 64 29 0d 0a 20 20   (!IsClosed)..  
6760: 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 74      {..        t
6770: 68 69 73 2e 5f 69 73 43 6c 6f 73 65 64 20 3d 20  his._isClosed = 
6780: 74 72 75 65 3b 0d 0a 20 20 20 20 20 20 20 20 69  true;..        i
6790: 66 20 28 21 49 73 49 6e 76 61 6c 69 64 29 0d 0a  f (!IsInvalid)..
67a0: 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20          {..     
67b0: 20 20 20 20 20 52 65 6c 65 61 73 65 48 61 6e 64       ReleaseHand
67c0: 6c 65 28 29 3b 0d 0a 20 20 20 20 20 20 20 20 20  le();..         
67d0: 20 47 43 2e 53 75 70 70 72 65 73 73 46 69 6e 61   GC.SuppressFina
67e0: 6c 69 7a 65 28 74 68 69 73 29 3b 0d 0a 20 20 20  lize(this);..   
67f0: 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 7d 0d       }..      }.
6800: 0a 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 70 75  .    }....    pu
6810: 62 6c 69 63 20 76 6f 69 64 20 43 6c 6f 73 65 28  blic void Close(
6820: 29 0d 0a 20 20 20 20 7b 0d 0a 20 20 20 20 20 20  )..    {..      
6830: 44 69 73 70 6f 73 65 28 74 72 75 65 29 3b 0d 0a  Dispose(true);..
6840: 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 70 75 62      }....    pub
6850: 6c 69 63 20 76 6f 69 64 20 44 69 73 70 6f 73 65  lic void Dispose
6860: 28 29 0d 0a 20 20 20 20 7b 0d 0a 20 20 20 20 20  ()..    {..     
6870: 20 44 69 73 70 6f 73 65 28 74 72 75 65 29 3b 0d   Dispose(true);.
6880: 0a 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 70 72  .    }....    pr
6890: 6f 74 65 63 74 65 64 20 76 69 72 74 75 61 6c 20  otected virtual 
68a0: 76 6f 69 64 20 44 69 73 70 6f 73 65 28 62 6f 6f  void Dispose(boo
68b0: 6c 20 64 69 73 70 6f 73 69 6e 67 29 0d 0a 20 20  l disposing)..  
68c0: 20 20 7b 0d 0a 20 20 20 20 20 20 43 6c 65 61 6e    {..      Clean
68d0: 75 70 28 29 3b 0d 0a 20 20 20 20 7d 0d 0a 0d 0a  up();..    }....
68e0: 20 20 20 20 70 72 6f 74 65 63 74 65 64 20 61 62      protected ab
68f0: 73 74 72 61 63 74 20 62 6f 6f 6c 20 52 65 6c 65  stract bool Rele
6900: 61 73 65 48 61 6e 64 6c 65 28 29 3b 0d 0a 0d 0a  aseHandle();....
6910: 20 20 20 20 70 72 6f 74 65 63 74 65 64 20 76 6f      protected vo
6920: 69 64 20 53 65 74 48 61 6e 64 6c 65 28 49 6e 74  id SetHandle(Int
6930: 50 74 72 20 76 61 6c 75 65 29 0d 0a 20 20 20 20  Ptr value)..    
6940: 7b 0d 0a 20 20 20 20 20 20 68 61 6e 64 6c 65 20  {..      handle 
6950: 3d 20 76 61 6c 75 65 3b 0d 0a 20 20 20 20 7d 0d  = value;..    }.
6960: 0a 0d 0a 20 20 20 20 70 75 62 6c 69 63 20 76 6f  ...    public vo
6970: 69 64 20 53 65 74 48 61 6e 64 6c 65 41 73 49 6e  id SetHandleAsIn
6980: 76 61 6c 69 64 28 29 0d 0a 20 20 20 20 7b 0d 0a  valid()..    {..
6990: 20 20 20 20 20 20 5f 69 73 43 6c 6f 73 65 64 20        _isClosed 
69a0: 3d 20 74 72 75 65 3b 0d 0a 20 20 20 20 20 20 47  = true;..      G
69b0: 43 2e 53 75 70 70 72 65 73 73 46 69 6e 61 6c 69  C.SuppressFinali
69c0: 7a 65 28 74 68 69 73 29 3b 0d 0a 20 20 20 20 7d  ze(this);..    }
69d0: 0d 0a 0d 0a 20 20 20 20 70 75 62 6c 69 63 20 62  ....    public b
69e0: 6f 6f 6c 20 49 73 43 6c 6f 73 65 64 0d 0a 20 20  ool IsClosed..  
69f0: 20 20 7b 0d 0a 20 20 20 20 20 20 67 65 74 20 7b    {..      get {
6a00: 20 72 65 74 75 72 6e 20 5f 69 73 43 6c 6f 73 65   return _isClose
6a10: 64 3b 20 7d 0d 0a 20 20 20 20 7d 0d 0a 0d 0a 20  d; }..    }.... 
6a20: 20 20 20 70 75 62 6c 69 63 20 61 62 73 74 72 61     public abstra
6a30: 63 74 20 62 6f 6f 6c 20 49 73 49 6e 76 61 6c 69  ct bool IsInvali
6a40: 64 0d 0a 20 20 20 20 7b 0d 0a 20 20 20 20 20 20  d..    {..      
6a50: 67 65 74 3b 0d 0a 20 20 20 20 7d 0d 0a 0d 0a 20  get;..    }.... 
6a60: 20 7d 0d 0a 0d 0a 23 65 6e 64 69 66 0d 0a 0d 0a   }....#endif....
6a70: 20 20 2f 2f 20 48 61 6e 64 6c 65 73 20 74 68 65    // Handles the
6a80: 20 75 6e 6d 61 6e 61 67 65 64 20 64 61 74 61 62   unmanaged datab
6a90: 61 73 65 20 70 6f 69 6e 74 65 72 2c 20 61 6e 64  ase pointer, and
6aa0: 20 70 72 6f 76 69 64 65 73 20 66 69 6e 61 6c 69   provides finali
6ab0: 7a 61 74 69 6f 6e 20 73 75 70 70 6f 72 74 20 66  zation support f
6ac0: 6f 72 20 69 74 2e 0d 0a 20 20 69 6e 74 65 72 6e  or it...  intern
6ad0: 61 6c 20 63 6c 61 73 73 20 53 51 4c 69 74 65 43  al class SQLiteC
6ae0: 6f 6e 6e 65 63 74 69 6f 6e 48 61 6e 64 6c 65 20  onnectionHandle 
6af0: 3a 20 43 72 69 74 69 63 61 6c 48 61 6e 64 6c 65  : CriticalHandle
6b00: 0d 0a 20 20 7b 0d 0a 20 20 20 20 70 75 62 6c 69  ..  {..    publi
6b10: 63 20 73 74 61 74 69 63 20 69 6d 70 6c 69 63 69  c static implici
6b20: 74 20 6f 70 65 72 61 74 6f 72 20 49 6e 74 50 74  t operator IntPt
6b30: 72 28 53 51 4c 69 74 65 43 6f 6e 6e 65 63 74 69  r(SQLiteConnecti
6b40: 6f 6e 48 61 6e 64 6c 65 20 64 62 29 0d 0a 20 20  onHandle db)..  
6b50: 20 20 7b 0d 0a 20 20 20 20 20 20 72 65 74 75 72    {..      retur
6b60: 6e 20 64 62 2e 68 61 6e 64 6c 65 3b 0d 0a 20 20  n db.handle;..  
6b70: 20 20 7d 0d 0a 0d 0a 20 20 20 20 70 75 62 6c 69    }....    publi
6b80: 63 20 73 74 61 74 69 63 20 69 6d 70 6c 69 63 69  c static implici
6b90: 74 20 6f 70 65 72 61 74 6f 72 20 53 51 4c 69 74  t operator SQLit
6ba0: 65 43 6f 6e 6e 65 63 74 69 6f 6e 48 61 6e 64 6c  eConnectionHandl
6bb0: 65 28 49 6e 74 50 74 72 20 64 62 29 0d 0a 20 20  e(IntPtr db)..  
6bc0: 20 20 7b 0d 0a 20 20 20 20 20 20 72 65 74 75 72    {..      retur
6bd0: 6e 20 6e 65 77 20 53 51 4c 69 74 65 43 6f 6e 6e  n new SQLiteConn
6be0: 65 63 74 69 6f 6e 48 61 6e 64 6c 65 28 64 62 29  ectionHandle(db)
6bf0: 3b 0d 0a 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20  ;..    }....    
6c00: 70 72 69 76 61 74 65 20 53 51 4c 69 74 65 43 6f  private SQLiteCo
6c10: 6e 6e 65 63 74 69 6f 6e 48 61 6e 64 6c 65 28 49  nnectionHandle(I
6c20: 6e 74 50 74 72 20 64 62 29 0d 0a 20 20 20 20 20  ntPtr db)..     
6c30: 20 3a 20 74 68 69 73 28 29 0d 0a 20 20 20 20 7b   : this()..    {
6c40: 0d 0a 20 20 20 20 20 20 53 65 74 48 61 6e 64 6c  ..      SetHandl
6c50: 65 28 64 62 29 3b 0d 0a 20 20 20 20 7d 0d 0a 0d  e(db);..    }...
6c60: 0a 20 20 20 20 69 6e 74 65 72 6e 61 6c 20 53 51  .    internal SQ
6c70: 4c 69 74 65 43 6f 6e 6e 65 63 74 69 6f 6e 48 61  LiteConnectionHa
6c80: 6e 64 6c 65 28 29 0d 0a 20 20 20 20 20 20 3a 20  ndle()..      : 
6c90: 62 61 73 65 28 49 6e 74 50 74 72 2e 5a 65 72 6f  base(IntPtr.Zero
6ca0: 29 0d 0a 20 20 20 20 7b 0d 0a 20 20 20 20 7d 0d  )..    {..    }.
6cb0: 0a 0d 0a 20 20 20 20 70 72 6f 74 65 63 74 65 64  ...    protected
6cc0: 20 6f 76 65 72 72 69 64 65 20 62 6f 6f 6c 20 52   override bool R
6cd0: 65 6c 65 61 73 65 48 61 6e 64 6c 65 28 29 0d 0a  eleaseHandle()..
6ce0: 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 74 72 79      {..      try
6cf0: 0d 0a 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20  ..      {..     
6d00: 20 20 20 53 51 4c 69 74 65 42 61 73 65 2e 43 6c     SQLiteBase.Cl
6d10: 6f 73 65 43 6f 6e 6e 65 63 74 69 6f 6e 28 74 68  oseConnection(th
6d20: 69 73 29 3b 0d 0a 20 20 20 20 20 20 7d 0d 0a 20  is);..      }.. 
6d30: 20 20 20 20 20 63 61 74 63 68 20 28 53 51 4c 69       catch (SQLi
6d40: 74 65 45 78 63 65 70 74 69 6f 6e 29 0d 0a 20 20  teException)..  
6d50: 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 7d 0d 0a      {..      }..
6d60: 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 72 75        return tru
6d70: 65 3b 0d 0a 20 20 20 20 7d 0d 0a 0d 0a 20 20 20  e;..    }....   
6d80: 20 70 75 62 6c 69 63 20 6f 76 65 72 72 69 64 65   public override
6d90: 20 62 6f 6f 6c 20 49 73 49 6e 76 61 6c 69 64 0d   bool IsInvalid.
6da0: 0a 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 67 65  .    {..      ge
6db0: 74 20 7b 20 72 65 74 75 72 6e 20 28 68 61 6e 64  t { return (hand
6dc0: 6c 65 20 3d 3d 20 49 6e 74 50 74 72 2e 5a 65 72  le == IntPtr.Zer
6dd0: 6f 29 3b 20 7d 0d 0a 20 20 20 20 7d 0d 0a 20 20  o); }..    }..  
6de0: 7d 0d 0a 0d 0a 20 20 2f 2f 20 50 72 6f 76 69 64  }....  // Provid
6df0: 65 73 20 66 69 6e 61 6c 69 7a 61 74 69 6f 6e 20  es finalization 
6e00: 73 75 70 70 6f 72 74 20 66 6f 72 20 75 6e 6d 61  support for unma
6e10: 6e 61 67 65 64 20 53 51 4c 69 74 65 20 73 74 61  naged SQLite sta
6e20: 74 65 6d 65 6e 74 73 2e 0d 0a 20 20 69 6e 74 65  tements...  inte
6e30: 72 6e 61 6c 20 63 6c 61 73 73 20 53 51 4c 69 74  rnal class SQLit
6e40: 65 53 74 61 74 65 6d 65 6e 74 48 61 6e 64 6c 65  eStatementHandle
6e50: 20 3a 20 43 72 69 74 69 63 61 6c 48 61 6e 64 6c   : CriticalHandl
6e60: 65 0d 0a 20 20 7b 0d 0a 20 20 20 20 70 75 62 6c  e..  {..    publ
6e70: 69 63 20 73 74 61 74 69 63 20 69 6d 70 6c 69 63  ic static implic
6e80: 69 74 20 6f 70 65 72 61 74 6f 72 20 49 6e 74 50  it operator IntP
6e90: 74 72 28 53 51 4c 69 74 65 53 74 61 74 65 6d 65  tr(SQLiteStateme
6ea0: 6e 74 48 61 6e 64 6c 65 20 73 74 6d 74 29 0d 0a  ntHandle stmt)..
6eb0: 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 72 65 74      {..      ret
6ec0: 75 72 6e 20 73 74 6d 74 2e 68 61 6e 64 6c 65 3b  urn stmt.handle;
6ed0: 0d 0a 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 70  ..    }....    p
6ee0: 75 62 6c 69 63 20 73 74 61 74 69 63 20 69 6d 70  ublic static imp
6ef0: 6c 69 63 69 74 20 6f 70 65 72 61 74 6f 72 20 53  licit operator S
6f00: 51 4c 69 74 65 53 74 61 74 65 6d 65 6e 74 48 61  QLiteStatementHa
6f10: 6e 64 6c 65 28 49 6e 74 50 74 72 20 73 74 6d 74  ndle(IntPtr stmt
6f20: 29 0d 0a 20 20 20 20 7b 0d 0a 20 20 20 20 20 20  )..    {..      
6f30: 72 65 74 75 72 6e 20 6e 65 77 20 53 51 4c 69 74  return new SQLit
6f40: 65 53 74 61 74 65 6d 65 6e 74 48 61 6e 64 6c 65  eStatementHandle
6f50: 28 73 74 6d 74 29 3b 0d 0a 20 20 20 20 7d 0d 0a  (stmt);..    }..
6f60: 0d 0a 20 20 20 20 70 72 69 76 61 74 65 20 53 51  ..    private SQ
6f70: 4c 69 74 65 53 74 61 74 65 6d 65 6e 74 48 61 6e  LiteStatementHan
6f80: 64 6c 65 28 49 6e 74 50 74 72 20 73 74 6d 74 29  dle(IntPtr stmt)
6f90: 0d 0a 20 20 20 20 20 20 3a 20 74 68 69 73 28 29  ..      : this()
6fa0: 0d 0a 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 53  ..    {..      S
6fb0: 65 74 48 61 6e 64 6c 65 28 73 74 6d 74 29 3b 0d  etHandle(stmt);.
6fc0: 0a 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 69 6e  .    }....    in
6fd0: 74 65 72 6e 61 6c 20 53 51 4c 69 74 65 53 74 61  ternal SQLiteSta
6fe0: 74 65 6d 65 6e 74 48 61 6e 64 6c 65 28 29 0d 0a  tementHandle()..
6ff0: 20 20 20 20 20 20 3a 20 62 61 73 65 28 49 6e 74        : base(Int
7000: 50 74 72 2e 5a 65 72 6f 29 0d 0a 20 20 20 20 7b  Ptr.Zero)..    {
7010: 0d 0a 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 70  ..    }....    p
7020: 72 6f 74 65 63 74 65 64 20 6f 76 65 72 72 69 64  rotected overrid
7030: 65 20 62 6f 6f 6c 20 52 65 6c 65 61 73 65 48 61  e bool ReleaseHa
7040: 6e 64 6c 65 28 29 0d 0a 20 20 20 20 7b 0d 0a 20  ndle()..    {.. 
7050: 20 20 20 20 20 74 72 79 0d 0a 20 20 20 20 20 20       try..      
7060: 7b 0d 0a 20 20 20 20 20 20 20 20 53 51 4c 69 74  {..        SQLit
7070: 65 42 61 73 65 2e 46 69 6e 61 6c 69 7a 65 53 74  eBase.FinalizeSt
7080: 61 74 65 6d 65 6e 74 28 74 68 69 73 29 3b 0d 0a  atement(this);..
7090: 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 63        }..      c
70a0: 61 74 63 68 20 28 53 51 4c 69 74 65 45 78 63 65  atch (SQLiteExce
70b0: 70 74 69 6f 6e 29 0d 0a 20 20 20 20 20 20 7b 0d  ption)..      {.
70c0: 0a 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20  .      }..      
70d0: 72 65 74 75 72 6e 20 74 72 75 65 3b 0d 0a 20 20  return true;..  
70e0: 20 20 7d 0d 0a 0d 0a 20 20 20 20 70 75 62 6c 69    }....    publi
70f0: 63 20 6f 76 65 72 72 69 64 65 20 62 6f 6f 6c 20  c override bool 
7100: 49 73 49 6e 76 61 6c 69 64 0d 0a 20 20 20 20 7b  IsInvalid..    {
7110: 0d 0a 20 20 20 20 20 20 67 65 74 20 7b 20 72 65  ..      get { re
7120: 74 75 72 6e 20 28 68 61 6e 64 6c 65 20 3d 3d 20  turn (handle == 
7130: 49 6e 74 50 74 72 2e 5a 65 72 6f 29 3b 20 7d 0d  IntPtr.Zero); }.
7140: 0a 20 20 20 20 7d 0d 0a 20 20 7d 0d 0a 7d 0d 0a  .    }..  }..}..