System.Data.SQLite
Hex Artifact Content
Not logged in

Artifact 17af8687428d907bfbfe25821b8b0f22bb802d78:


0000: 3c 21 44 4f 43 54 59 50 45 20 48 54 4d 4c 20 50  <!DOCTYPE HTML P
0010: 55 42 4c 49 43 20 22 2d 2f 2f 57 33 43 2f 2f 44  UBLIC "-//W3C//D
0020: 54 44 20 48 54 4d 4c 20 34 2e 30 31 20 54 72 61  TD HTML 4.01 Tra
0030: 6e 73 69 74 69 6f 6e 61 6c 2f 2f 45 4e 22 3e 0a  nsitional//EN">.
0040: 3c 68 74 6d 6c 3e 0a 20 20 3c 68 65 61 64 3e 0a  <html>.  <head>.
0050: 20 20 20 20 3c 74 69 74 6c 65 3e 3c 2f 74 69 74      <title></tit
0060: 6c 65 3e 0a 20 20 3c 2f 68 65 61 64 3e 0a 20 20  le>.  </head>.  
0070: 3c 62 6f 64 79 3e 0a 20 20 20 20 41 44 4f 2e 4e  <body>.    ADO.N
0080: 45 54 20 32 2e 30 20 53 51 4c 69 74 65 20 44 61  ET 2.0 SQLite Da
0090: 74 61 20 50 72 6f 76 69 64 65 72 3c 62 72 3e 0a  ta Provider<br>.
00a0: 20 20 20 20 56 65 72 73 69 6f 6e 20 31 2e 30 2e      Version 1.0.
00b0: 31 32 20 2d 20 41 75 67 20 32 2c 20 32 30 30 35  12 - Aug 2, 2005
00c0: 3c 62 72 3e 0a 20 20 20 20 49 6e 74 65 72 6f 70  <br>.    Interop
00d0: 20 75 73 69 6e 67 20 53 51 4c 69 74 65 20 33 2e   using SQLite 3.
00e0: 32 32 3c 62 72 3e 0a 20 20 20 20 57 72 69 74 74  22<br>.    Writt
00f0: 65 6e 20 62 79 20 52 6f 62 65 72 74 20 53 69 6d  en by Robert Sim
0100: 70 73 6f 6e 20 28 3c 61 20 68 72 65 66 3d 22 6d  pson (<a href="m
0110: 61 69 6c 74 6f 3a 72 6f 62 65 72 74 40 62 6c 61  ailto:robert@bla
0120: 63 6b 63 61 73 74 6c 65 73 6f 66 74 2e 63 6f 6d  ckcastlesoft.com
0130: 22 3e 72 6f 62 65 72 74 40 62 6c 61 63 6b 63 61  ">robert@blackca
0140: 73 74 6c 65 73 6f 66 74 2e 63 6f 6d 3c 2f 61 3e  stlesoft.com</a>
0150: 29 3c 62 72 3e 0a 20 20 20 20 52 65 6c 65 61 73  )<br>.    Releas
0160: 65 64 20 74 6f 20 74 68 65 20 70 75 62 6c 69 63  ed to the public
0170: 20 64 6f 6d 61 69 6e 2c 20 75 73 65 20 61 74 20   domain, use at 
0180: 79 6f 75 72 20 6f 77 6e 20 72 69 73 6b 21 3c 62  your own risk!<b
0190: 72 3e 0a 20 20 20 20 3c 62 72 3e 0a 20 20 20 20  r>.    <br>.    
01a0: 54 68 69 73 20 70 72 6f 76 69 64 65 72 20 77 61  This provider wa
01b0: 73 20 77 72 69 74 74 65 6e 20 61 6e 64 20 74 65  s written and te
01c0: 73 74 65 64 20 75 73 69 6e 67 20 74 68 65 20 56  sted using the V
01d0: 69 73 75 61 6c 20 53 74 75 64 69 6f 20 32 30 30  isual Studio 200
01e0: 35 20 42 65 74 61 20 32 20 0a 20 20 20 20 72 65  5 Beta 2 .    re
01f0: 6c 65 61 73 65 2e 3c 62 72 3e 0a 20 20 20 20 3c  lease.<br>.    <
0200: 62 72 3e 0a 20 20 20 20 54 68 65 20 6c 61 74 65  br>.    The late
0210: 73 74 20 76 65 72 73 69 6f 6e 20 63 61 6e 20 62  st version can b
0220: 65 20 64 6f 77 6e 6c 6f 61 64 65 64 20 3c 61 20  e downloaded <a 
0230: 68 72 65 66 3d 22 68 74 74 70 3a 2f 2f 73 6f 75  href="http://sou
0240: 72 63 65 66 6f 72 67 65 2e 6e 65 74 2f 70 72 6f  rceforge.net/pro
0250: 6a 65 63 74 73 2f 73 71 6c 69 74 65 2d 64 6f 74  jects/sqlite-dot
0260: 6e 65 74 32 22 3e 0a 20 20 20 20 20 20 68 65 72  net2">.      her
0270: 65 3c 2f 61 3e 0a 20 20 20 20 3c 62 72 3e 0a 20  e</a>.    <br>. 
0280: 20 20 20 3c 62 72 3e 0a 20 20 20 20 3c 62 3e 3c     <br>.    <b><
0290: 2f 62 3e 0a 20 20 20 20 3c 68 32 3e 0a 20 20 20  /b>.    <h2>.   
02a0: 20 20 20 3c 62 3e 46 65 61 74 75 72 65 73 3a 3c     <b>Features:<
02b0: 2f 62 3e 3c 62 72 3e 0a 20 20 20 20 3c 2f 68 32  /b><br>.    </h2
02c0: 3e 0a 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20  >.    <ul>.     
02d0: 20 3c 6c 69 3e 0a 20 20 20 20 20 20 44 62 50 72   <li>.      DbPr
02e0: 6f 76 69 64 65 72 46 61 63 74 6f 72 79 20 73 75  oviderFactory su
02f0: 70 70 6f 72 74 2c 20 6a 75 73 74 20 61 64 64 20  pport, just add 
0300: 74 68 65 20 58 4d 4c 20 62 65 6c 6f 77 20 61 74  the XML below at
0310: 20 74 68 65 20 6d 61 63 68 69 6e 65 2e 63 6f 6e   the machine.con
0320: 66 69 67 20 61 6e 64 2f 6f 72 20 0a 20 20 20 20  fig and/or .    
0330: 20 20 61 70 70 2e 63 6f 6e 66 69 67 20 6c 65 76    app.config lev
0340: 65 6c 2e 0a 20 20 20 20 20 20 3c 6c 69 3e 0a 20  el..      <li>. 
0350: 20 20 20 20 20 20 20 46 75 6c 6c 20 73 75 70 70         Full supp
0360: 6f 72 74 20 66 6f 72 20 41 54 54 41 43 48 27 65  ort for ATTACH'e
0370: 64 20 64 61 74 61 62 61 73 65 73 2e 26 6e 62 73  d databases.&nbs
0380: 70 3b 20 45 78 70 6f 73 65 64 20 61 73 20 3c 69  p; Exposed as <i
0390: 3e 43 61 74 61 6c 6f 67 73 3c 2f 69 3e 0a 20 20  >Catalogs</i>.  
03a0: 20 20 20 20 69 6e 20 74 68 65 20 73 63 68 65 6d      in the schem
03b0: 61 2e 26 6e 62 73 70 3b 20 57 68 65 6e 20 63 6c  a.&nbsp; When cl
03c0: 6f 6e 69 6e 67 20 61 20 63 6f 6e 6e 65 63 74 69  oning a connecti
03d0: 6f 6e 2c 20 61 6c 6c 20 61 74 74 61 63 68 65 64  on, all attached
03e0: 20 64 61 74 61 62 61 73 65 73 20 61 72 65 20 0a   databases are .
03f0: 20 20 20 20 20 20 61 75 74 6f 6d 61 74 69 63 61        automatica
0400: 6c 6c 79 20 72 65 2d 61 74 74 61 63 68 65 64 20  lly re-attached 
0410: 74 6f 20 74 68 65 20 6e 65 77 20 63 6f 6e 6e 65  to the new conne
0420: 63 74 69 6f 6e 2e 0a 20 20 20 20 20 20 3c 6c 69  ction..      <li
0430: 3e 0a 20 20 20 20 20 20 20 20 44 62 43 6f 6e 6e  >.        DbConn
0440: 65 63 74 69 6f 6e 2e 47 65 74 53 63 68 65 6d 61  ection.GetSchema
0450: 28 2e 2e 2e 29 20 73 75 70 70 6f 72 74 20 69 6e  (...) support in
0460: 63 6c 75 64 65 73 20 74 68 65 20 3c 69 3e 4d 65  cludes the <i>Me
0470: 74 61 44 61 74 61 43 6f 6c 6c 65 63 74 69 6f 6e  taDataCollection
0480: 73 3c 2f 69 3e 2c 20 3c 69 3e 44 61 74 61 53 6f  s</i>, <i>DataSo
0490: 75 72 63 65 49 6e 66 6f 72 6d 61 74 69 6f 6e 3c  urceInformation<
04a0: 2f 69 3e 2c 0a 20 20 20 20 20 20 20 20 3c 69 3e  /i>,.        <i>
04b0: 43 6f 6c 75 6d 6e 73 3c 2f 69 3e 2c 20 3c 69 3e  Columns</i>, <i>
04c0: 54 61 62 6c 65 73 3c 2f 69 3e 2c 20 3c 69 3e 56  Tables</i>, <i>V
04d0: 69 65 77 73 3c 2f 69 3e 2c 20 3c 69 3e 43 61 74  iews</i>, <i>Cat
04e0: 61 6c 6f 67 73 3c 2f 69 3e 20 61 6e 64 20 3c 69  alogs</i> and <i
04f0: 3e 49 6e 64 65 78 65 73 3c 2f 69 3e 0a 20 20 20  >Indexes</i>.   
0500: 20 20 20 6b 65 79 77 6f 72 64 73 2e 0a 20 20 20     keywords..   
0510: 20 20 20 3c 6c 69 3e 0a 20 20 20 20 20 20 45 6e     <li>.      En
0520: 68 61 6e 63 65 64 20 44 62 44 61 74 61 52 65 61  hanced DbDataRea
0530: 64 65 72 2e 47 65 74 53 63 68 65 6d 61 54 61 62  der.GetSchemaTab
0540: 6c 65 28 29 20 66 75 6e 63 74 69 6f 6e 61 6c 69  le() functionali
0550: 74 79 20 72 65 74 75 72 6e 73 20 63 61 74 61 6c  ty returns catal
0560: 6f 67 2c 20 6e 61 6d 65 73 70 61 63 65 20 0a 20  og, namespace . 
0570: 20 20 20 20 20 61 6e 64 20 64 65 74 61 69 6c 65       and detaile
0580: 64 20 73 63 68 65 6d 61 20 69 6e 66 6f 72 6d 61  d schema informa
0590: 74 69 6f 6e 20 65 76 65 6e 20 66 6f 72 20 63 6f  tion even for co
05a0: 6d 70 6c 65 78 20 71 75 65 72 69 65 73 2e 0a 20  mplex queries.. 
05b0: 20 20 20 20 20 3c 6c 69 3e 0a 20 20 20 20 20 20       <li>.      
05c0: 4e 61 6d 65 64 20 61 6e 64 20 75 6e 6e 61 6d 65  Named and unname
05d0: 64 20 70 61 72 61 6d 65 74 65 72 73 2e 0a 20 20  d parameters..  
05e0: 20 20 20 20 3c 6c 69 3e 0a 20 20 20 20 20 20 46      <li>.      F
05f0: 75 6c 6c 20 55 54 46 2d 38 20 61 6e 64 20 55 54  ull UTF-8 and UT
0600: 46 2d 31 36 20 73 75 70 70 6f 72 74 2e 0a 20 20  F-16 support..  
0610: 20 20 20 20 3c 6c 69 3e 0a 20 20 20 20 20 20 4d      <li>.      M
0620: 75 6c 74 69 70 6c 65 20 73 69 6d 75 6c 74 61 6e  ultiple simultan
0630: 65 6f 75 73 20 44 61 74 61 52 65 61 64 65 72 73  eous DataReaders
0640: 20 28 6f 6e 65 20 44 61 74 61 52 65 61 64 65 72   (one DataReader
0650: 20 70 65 72 20 43 6f 6d 6d 61 6e 64 20 68 6f 77   per Command how
0660: 65 76 65 72 29 2e 0a 20 20 20 20 20 20 3c 6c 69  ever)..      <li
0670: 3e 0a 20 20 20 20 20 20 46 75 6c 6c 20 73 75 70  >.      Full sup
0680: 70 6f 72 74 20 66 6f 72 20 75 73 65 72 2d 64 65  port for user-de
0690: 66 69 6e 65 64 20 73 63 61 6c 61 72 20 61 6e 64  fined scalar and
06a0: 20 61 67 67 72 65 67 61 74 65 20 66 75 6e 63 74   aggregate funct
06b0: 69 6f 6e 73 2c 20 65 6e 63 61 70 73 75 6c 61 74  ions, encapsulat
06c0: 65 64 20 69 6e 74 6f 20 0a 20 20 20 20 20 20 61  ed into .      a
06d0: 6e 20 65 61 73 79 2d 74 6f 2d 75 73 65 20 62 61  n easy-to-use ba
06e0: 73 65 20 63 6c 61 73 73 20 69 6e 20 77 68 69 63  se class in whic
06f0: 68 20 6f 6e 6c 79 20 61 20 63 6f 75 70 6c 65 20  h only a couple 
0700: 6f 66 20 6f 76 65 72 72 69 64 65 73 20 61 72 65  of overrides are
0710: 20 6e 65 63 65 73 73 61 72 79 20 74 6f 20 0a 20   necessary to . 
0720: 20 20 20 20 20 69 6d 70 6c 65 6d 65 6e 74 20 6e       implement n
0730: 65 77 20 53 51 4c 20 66 75 6e 63 74 69 6f 6e 73  ew SQL functions
0740: 2e 0a 20 20 20 20 20 20 3c 6c 69 3e 0a 20 20 20  ..      <li>.   
0750: 20 20 20 20 20 46 75 6c 6c 20 73 75 70 70 6f 72       Full suppor
0760: 74 20 66 6f 72 20 75 73 65 72 2d 64 65 66 69 6e  t for user-defin
0770: 65 64 20 63 6f 6c 6c 61 74 69 6e 67 20 73 65 71  ed collating seq
0780: 75 65 6e 63 65 73 2c 20 65 76 65 72 79 20 62 69  uences, every bi
0790: 74 20 61 73 20 73 69 6d 70 6c 65 20 74 6f 20 0a  t as simple to .
07a0: 20 20 20 20 20 20 20 20 69 6d 70 6c 65 6d 65 6e          implemen
07b0: 74 20 61 73 20 75 73 65 72 2d 64 65 66 69 6e 65  t as user-define
07c0: 64 20 66 75 6e 63 74 69 6f 6e 73 20 61 6e 64 20  d functions and 
07d0: 75 73 65 73 20 74 68 65 20 73 61 6d 65 20 62 61  uses the same ba
07e0: 73 65 20 63 6c 61 73 73 2e 3c 2f 6c 69 3e 3c 2f  se class.</li></
07f0: 75 6c 3e 0a 20 20 20 20 3c 73 74 72 6f 6e 67 3e  ul>.    <strong>
0800: 3c 2f 73 74 72 6f 6e 67 3e 0a 20 20 20 20 3c 68  </strong>.    <h
0810: 32 3e 0a 20 20 20 20 20 20 3c 73 74 72 6f 6e 67  2>.      <strong
0820: 3e 44 62 46 61 63 74 6f 72 79 20 53 75 70 70 6f  >DbFactory Suppo
0830: 72 74 20 28 4e 6f 6e 2d 43 6f 6d 70 61 63 74 20  rt (Non-Compact 
0840: 46 72 61 6d 65 77 6f 72 6b 29 3c 2f 73 74 72 6f  Framework)</stro
0850: 6e 67 3e 3c 2f 68 32 3e 0a 20 20 20 20 49 6e 20  ng></h2>.    In 
0860: 6f 72 64 65 72 20 74 6f 20 75 73 65 20 74 68 65  order to use the
0870: 20 53 51 4c 69 74 65 46 61 63 74 6f 72 79 20 61   SQLiteFactory a
0880: 6e 64 20 68 61 76 65 20 74 68 65 20 53 51 4c 69  nd have the SQLi
0890: 74 65 20 64 61 74 61 20 70 72 6f 76 69 64 65 72  te data provider
08a0: 20 65 6e 75 6d 65 72 61 74 65 64 20 0a 20 20 20   enumerated .   
08b0: 20 69 6e 20 74 68 65 20 44 62 50 72 6f 76 69 64   in the DbProvid
08c0: 65 72 46 61 63 74 6f 72 69 65 73 20 6d 65 74 68  erFactories meth
08d0: 6f 64 73 2c 20 79 6f 75 20 6d 75 73 74 20 61 64  ods, you must ad
08e0: 64 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20  d the following 
08f0: 73 65 67 6d 65 6e 74 20 69 6e 74 6f 20 0a 20 20  segment into .  
0900: 20 20 65 69 74 68 65 72 20 79 6f 75 72 20 61 70    either your ap
0910: 70 6c 69 63 61 74 69 6f 6e 27 73 20 61 70 70 2e  plication's app.
0920: 63 6f 6e 66 69 67 20 6f 72 20 74 68 65 20 73 79  config or the sy
0930: 73 74 65 6d 27 73 20 6d 61 63 68 69 6e 65 2e 63  stem's machine.c
0940: 6f 6e 66 69 67 20 6c 6f 63 61 74 65 64 20 69 6e  onfig located in
0950: 20 0a 20 20 20 20 74 68 65 20 25 53 79 73 74 65   .    the %Syste
0960: 6d 52 6f 6f 74 25 5c 4d 69 63 72 6f 73 6f 66 74  mRoot%\Microsoft
0970: 2e 4e 65 74 5c 46 72 61 6d 65 77 6f 72 6b 5c 76  .Net\Framework\v
0980: 32 2e 78 78 78 78 5c 43 6f 6e 66 69 67 20 66 6f  2.xxxx\Config fo
0990: 6c 64 65 72 3a 3c 62 72 3e 0a 20 20 20 20 3c 62  lder:<br>.    <b
09a0: 72 3e 0a 20 20 20 20 3c 70 72 65 3e 0a 26 6c 74  r>.    <pre>.&lt
09b0: 3b 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 26 67  ;configuration&g
09c0: 74 3b 0a 20 20 26 6c 74 3b 73 79 73 74 65 6d 2e  t;.  &lt;system.
09d0: 64 61 74 61 26 67 74 3b 0a 20 20 20 20 26 6c 74  data&gt;.    &lt
09e0: 3b 44 62 50 72 6f 76 69 64 65 72 46 61 63 74 6f  ;DbProviderFacto
09f0: 72 69 65 73 26 67 74 3b 0a 20 20 20 20 20 20 26  ries&gt;.      &
0a00: 6c 74 3b 61 64 64 20 6e 61 6d 65 3d 22 53 51 4c  lt;add name="SQL
0a10: 69 74 65 20 44 61 74 61 20 50 72 6f 76 69 64 65  ite Data Provide
0a20: 72 22 20 69 6e 76 61 72 69 61 6e 74 3d 22 53 79  r" invariant="Sy
0a30: 73 74 65 6d 2e 44 61 74 61 2e 53 51 4c 69 74 65  stem.Data.SQLite
0a40: 22 20 73 75 70 70 6f 72 74 3d 22 33 46 22 20 64  " support="3F" d
0a50: 65 73 63 72 69 70 74 69 6f 6e 3d 22 2e 4e 65 74  escription=".Net
0a60: 20 46 72 61 6d 65 77 6f 72 6b 20 44 61 74 61 20   Framework Data 
0a70: 50 72 6f 76 69 64 65 72 20 66 6f 72 20 53 51 4c  Provider for SQL
0a80: 69 74 65 22 20 74 79 70 65 3d 22 53 79 73 74 65  ite" type="Syste
0a90: 6d 2e 44 61 74 61 2e 53 51 4c 69 74 65 2e 53 51  m.Data.SQLite.SQ
0aa0: 4c 69 74 65 46 61 63 74 6f 72 79 2c 20 53 79 73  LiteFactory, Sys
0ab0: 74 65 6d 2e 44 61 74 61 2e 53 51 4c 69 74 65 22  tem.Data.SQLite"
0ac0: 20 2f 26 67 74 3b 0a 20 20 20 20 26 6c 74 3b 2f   /&gt;.    &lt;/
0ad0: 44 62 50 72 6f 76 69 64 65 72 46 61 63 74 6f 72  DbProviderFactor
0ae0: 69 65 73 26 67 74 3b 0a 20 20 26 6c 74 3b 2f 73  ies&gt;.  &lt;/s
0af0: 79 73 74 65 6d 2e 64 61 74 61 26 67 74 3b 0a 26  ystem.data&gt;.&
0b00: 6c 74 3b 2f 63 6f 6e 66 69 67 75 72 61 74 69 6f  lt;/configuratio
0b10: 6e 26 67 74 3b 0a 3c 2f 70 72 65 3e 0a 20 20 20  n&gt;.</pre>.   
0b20: 20 3c 62 72 3e 0a 20 20 20 20 3c 68 33 3e 0a 20   <br>.    <h3>. 
0b30: 20 20 20 20 20 43 6f 6d 70 69 6c 69 6e 67 20 66       Compiling f
0b40: 6f 72 20 74 68 65 20 43 6f 6d 70 61 63 74 20 46  or the Compact F
0b50: 72 61 6d 65 77 6f 72 6b 3c 2f 68 33 3e 0a 20 20  ramework</h3>.  
0b60: 20 20 3c 70 3e 0a 20 20 20 20 20 20 4a 75 73 74    <p>.      Just
0b70: 20 63 68 61 6e 67 65 20 74 68 65 20 74 61 72 67   change the targ
0b80: 65 74 20 70 6c 61 74 66 6f 72 6d 20 66 72 6f 6d  et platform from
0b90: 20 57 69 6e 33 32 20 74 6f 20 43 6f 6d 70 61 63   Win32 to Compac
0ba0: 74 20 46 72 61 6d 65 77 6f 72 6b 20 61 6e 64 20  t Framework and 
0bb0: 0a 20 20 20 20 20 20 72 65 63 6f 6d 70 69 6c 65  .      recompile
0bc0: 2e 26 6e 62 73 70 3b 20 3c 53 54 52 4f 4e 47 3e  .&nbsp; <STRONG>
0bd0: 54 68 65 20 43 6f 6d 70 61 63 74 20 46 72 61 6d  The Compact Fram
0be0: 65 77 6f 72 6b 20 68 61 73 20 6e 6f 20 73 75 70  ework has no sup
0bf0: 70 6f 72 74 20 66 6f 72 20 65 6e 75 6d 65 72 61  port for enumera
0c00: 74 69 6e 67 20 0a 20 20 20 20 20 20 20 20 61 74  ting .        at
0c10: 74 72 69 62 75 74 65 73 20 69 6e 20 61 6e 20 61  tributes in an a
0c20: 73 73 65 6d 62 6c 79 2c 20 74 68 65 72 65 66 6f  ssembly, therefo
0c30: 72 65 20 61 6c 6c 20 75 73 65 72 2d 64 65 66 69  re all user-defi
0c40: 6e 65 64 20 63 6f 6c 6c 61 74 69 6e 67 20 73 65  ned collating se
0c50: 71 75 65 6e 63 65 73 20 61 6e 64 20 0a 20 20 20  quences and .   
0c60: 20 20 20 20 20 66 75 6e 63 74 69 6f 6e 73 20 6d       functions m
0c70: 75 73 74 20 62 65 20 65 78 70 6c 69 63 69 74 6c  ust be explicitl
0c80: 79 20 72 65 67 69 73 74 65 72 65 64 2e 3c 2f 53  y registered.</S
0c90: 54 52 4f 4e 47 3e 26 6e 62 73 70 3b 20 53 65 65  TRONG>&nbsp; See
0ca0: 20 74 68 65 20 3c 53 54 52 4f 4e 47 3e 74 65 73   the <STRONG>tes
0cb0: 74 63 65 3c 2f 53 54 52 4f 4e 47 3e 0a 20 20 20  tce</STRONG>.   
0cc0: 20 20 20 73 61 6d 70 6c 65 20 61 70 70 6c 69 63     sample applic
0cd0: 61 74 69 6f 6e 20 66 6f 72 20 61 6e 20 65 78 61  ation for an exa
0ce0: 6d 70 6c 65 20 6f 66 20 68 6f 77 20 74 6f 20 65  mple of how to e
0cf0: 78 70 6c 69 63 69 74 6c 79 20 72 65 67 69 73 74  xplicitly regist
0d00: 65 72 20 75 73 65 72 2d 64 65 66 69 6e 65 64 20  er user-defined 
0d10: 0a 20 20 20 20 20 20 63 6f 6c 6c 61 74 69 6e 67  .      collating
0d20: 20 73 65 71 75 65 6e 63 65 73 20 61 6e 64 20 66   sequences and f
0d30: 75 6e 63 74 69 6f 6e 73 2e 3c 2f 70 3e 0a 20 20  unctions.</p>.  
0d40: 20 20 3c 68 32 3e 0a 20 20 20 20 20 20 3c 62 3e    <h2>.      <b>
0d50: 3c 41 20 6e 61 6d 65 3d 22 72 65 64 69 73 74 22  <A name="redist"
0d60: 3e 3c 2f 41 3e 44 69 73 74 72 69 62 75 74 69 6e  ></A>Distributin
0d70: 67 20 54 68 65 20 53 51 4c 69 74 65 20 45 6e 67  g The SQLite Eng
0d80: 69 6e 65 20 61 6e 64 20 41 44 4f 2e 4e 45 54 20  ine and ADO.NET 
0d90: 41 73 73 65 6d 62 6c 79 3c 2f 62 3e 3c 2f 68 32  Assembly</b></h2
0da0: 3e 0a 20 20 20 20 3c 50 3e 46 6f 72 20 57 69 6e  >.    <P>For Win
0db0: 33 32 20 70 6c 61 74 66 6f 72 6d 73 2c 20 6f 6e  32 platforms, on
0dc0: 6c 79 20 74 68 65 20 3c 53 54 52 4f 4e 47 3e 53  ly the <STRONG>S
0dd0: 79 73 74 65 6d 2e 44 61 74 61 2e 53 51 4c 69 74  ystem.Data.SQLit
0de0: 65 2e 44 4c 4c 3c 2f 53 54 52 4f 4e 47 3e 20 66  e.DLL</STRONG> f
0df0: 69 6c 65 20 69 6e 20 0a 20 20 20 20 20 20 74 68  ile in .      th
0e00: 65 20 3c 53 54 52 4f 4e 47 3e 62 69 6e 3c 2f 53  e <STRONG>bin</S
0e10: 54 52 4f 4e 47 3e 20 66 6f 6c 64 65 72 20 73 68  TRONG> folder sh
0e20: 6f 75 6c 64 20 62 65 20 64 69 73 74 72 69 62 75  ould be distribu
0e30: 74 65 64 20 77 69 74 68 20 79 6f 75 72 20 0a 20  ted with your . 
0e40: 20 20 20 20 20 61 70 70 6c 69 63 61 74 69 6f 6e       application
0e50: 28 73 29 2e 26 6e 62 73 70 3b 20 54 68 69 73 20  (s).&nbsp; This 
0e60: 44 4c 4c 20 63 6f 6e 74 61 69 6e 73 20 62 6f 74  DLL contains bot
0e70: 68 20 74 68 65 20 6d 61 6e 61 67 65 64 20 77 72  h the managed wr
0e80: 61 70 70 65 72 20 61 6e 64 20 74 68 65 20 6e 61  apper and the na
0e90: 74 69 76 65 20 0a 20 20 20 20 20 20 53 51 4c 69  tive .      SQLi
0ea0: 74 65 33 20 63 6f 64 65 62 61 73 65 2e 3c 2f 50  te3 codebase.</P
0eb0: 3e 0a 20 20 20 20 3c 50 3e 46 6f 72 20 43 6f 6d  >.    <P>For Com
0ec0: 70 61 63 74 20 46 72 61 6d 65 77 6f 72 6b 20 70  pact Framework p
0ed0: 6c 61 74 66 6f 72 6d 73 2c 20 79 6f 75 72 20 61  latforms, your a
0ee0: 70 70 6c 69 63 61 74 69 6f 6e 20 73 68 6f 75 6c  pplication shoul
0ef0: 64 20 72 65 66 65 72 65 6e 63 65 20 74 68 65 20  d reference the 
0f00: 3c 53 54 52 4f 4e 47 3e 53 79 73 74 65 6d 2e 44  <STRONG>System.D
0f10: 61 74 61 2e 53 51 4c 69 74 65 2e 44 4c 4c 3c 2f  ata.SQLite.DLL</
0f20: 53 54 52 4f 4e 47 3e 0a 20 20 20 20 20 20 66 69  STRONG>.      fi
0f30: 6c 65 20 69 6e 20 74 68 65 20 3c 53 54 52 4f 4e  le in the <STRON
0f40: 47 3e 62 69 6e 5c 43 6f 6d 70 61 63 74 46 72 61  G>bin\CompactFra
0f50: 6d 65 77 6f 72 6b 3c 2f 53 54 52 4f 4e 47 3e 20  mework</STRONG> 
0f60: 66 6f 6c 64 65 72 2e 26 6e 62 73 70 3b 20 54 68  folder.&nbsp; Th
0f70: 65 20 3c 53 54 52 4f 4e 47 3e 53 79 73 74 65 6d  e <STRONG>System
0f80: 2e 44 61 74 61 2e 53 51 4c 69 74 65 2e 44 4c 4c  .Data.SQLite.DLL
0f90: 3c 2f 53 54 52 4f 4e 47 3e 0a 20 20 20 20 20 20  </STRONG>.      
0fa0: 61 6e 64 20 3c 53 54 52 4f 4e 47 3e 53 51 4c 69  and <STRONG>SQLi
0fb0: 74 65 2e 49 6e 74 65 72 6f 70 2e 44 4c 4c 3c 2f  te.Interop.DLL</
0fc0: 53 54 52 4f 4e 47 3e 20 66 69 6c 65 73 20 66 72  STRONG> files fr
0fd0: 6f 6d 20 74 68 65 20 3c 53 54 52 4f 4e 47 3e 62  om the <STRONG>b
0fe0: 69 6e 5c 43 6f 6d 70 61 63 74 46 72 61 6d 65 77  in\CompactFramew
0ff0: 6f 72 6b 3c 2f 53 54 52 4f 4e 47 3e 0a 20 20 20  ork</STRONG>.   
1000: 20 20 20 66 6f 6c 64 65 72 20 6d 75 73 74 20 62     folder must b
1010: 65 20 64 69 73 74 72 69 62 75 74 65 64 20 77 69  e distributed wi
1020: 74 68 20 79 6f 75 72 20 61 70 70 6c 69 63 61 74  th your applicat
1030: 69 6f 6e 28 73 29 2e 26 6e 62 73 70 3b 20 54 68  ion(s).&nbsp; Th
1040: 65 79 20 63 6f 6e 74 61 69 6e 20 74 68 65 20 0a  ey contain the .
1050: 20 20 20 20 20 20 6d 61 6e 61 67 65 64 20 77 72        managed wr
1060: 61 70 70 65 72 20 61 6e 64 20 74 68 65 20 6e 61  apper and the na
1070: 74 69 76 65 20 53 51 4c 69 74 65 33 20 63 6f 64  tive SQLite3 cod
1080: 65 62 61 73 65 20 72 65 73 70 65 63 74 69 76 65  ebase respective
1090: 6c 79 2e 26 6e 62 73 70 3b 20 54 68 65 20 43 6f  ly.&nbsp; The Co
10a0: 6d 70 61 63 74 20 0a 20 20 20 20 20 20 46 72 61  mpact .      Fra
10b0: 6d 65 77 6f 72 6b 20 64 6f 65 73 20 6e 6f 74 20  mework does not 
10c0: 63 75 72 72 65 6e 74 6c 79 20 73 75 70 70 6f 72  currently suppor
10d0: 74 20 6d 61 6e 61 67 65 64 20 43 2b 2b 2c 20 74  t managed C++, t
10e0: 68 75 73 20 74 68 65 20 72 65 61 73 6f 6e 20 66  hus the reason f
10f0: 6f 72 20 74 77 6f 20 0a 20 20 20 20 20 20 66 69  or two .      fi
1100: 6c 65 73 2e 3c 2f 50 3e 0a 20 20 20 20 3c 48 32  les.</P>.    <H2
1110: 3e 3c 42 3e 44 65 76 65 6c 6f 70 6d 65 6e 74 20  ><B>Development 
1120: 4e 6f 74 65 73 20 52 65 67 61 72 64 69 6e 67 20  Notes Regarding 
1130: 74 68 65 20 53 51 4c 69 74 65 20 33 20 53 6f 75  the SQLite 3 Sou
1140: 72 63 65 20 43 6f 64 65 3c 2f 42 3e 3c 2f 48 32  rce Code</B></H2
1150: 3e 0a 20 20 20 20 3c 70 3e 3c 2f 70 3e 0a 20 20  >.    <p></p>.  
1160: 20 20 3c 70 3e 0a 20 20 20 20 20 20 53 74 65 70    <p>.      Step
1170: 73 20 66 6f 72 20 6d 65 72 67 69 6e 67 20 74 68  s for merging th
1180: 65 20 73 71 6c 69 74 65 33 20 63 6f 72 65 20 63  e sqlite3 core c
1190: 6f 64 65 62 61 73 65 3a 3c 2f 70 3e 0a 20 20 20  odebase:</p>.   
11a0: 20 3c 70 3e 0a 20 20 20 20 20 20 3c 73 74 72 6f   <p>.      <stro
11b0: 6e 67 3e 54 68 69 73 20 73 65 63 74 69 6f 6e 20  ng>This section 
11c0: 69 73 20 6f 62 73 6f 6c 65 74 65 2c 20 62 75 74  is obsolete, but
11d0: 20 72 65 6d 61 69 6e 73 20 66 6f 72 20 68 69 73   remains for his
11e0: 74 6f 72 69 63 61 6c 20 70 75 72 70 6f 73 65 73  torical purposes
11f0: 2e 26 6e 62 73 70 3b 20 54 68 65 20 0a 20 20 20  .&nbsp; The .   
1200: 20 20 20 20 20 31 2e 30 2e 31 31 2b 20 76 65 72       1.0.11+ ver
1210: 73 69 6f 6e 73 20 6f 66 20 74 68 65 20 41 44 4f  sions of the ADO
1220: 2e 4e 45 54 20 32 2e 30 20 53 51 4c 69 74 65 20  .NET 2.0 SQLite 
1230: 70 72 6f 76 69 64 65 72 20 6d 61 6b 65 20 73 69  provider make si
1240: 67 6e 69 66 69 63 61 6e 74 20 63 68 61 6e 67 65  gnificant change
1250: 73 20 74 6f 20 0a 20 20 20 20 20 20 20 20 74 68  s to .        th
1260: 65 20 63 6f 72 65 20 73 71 6c 69 74 65 33 20 63  e core sqlite3 c
1270: 6f 64 65 62 61 73 65 20 69 6e 20 6f 72 64 65 72  odebase in order
1280: 20 74 6f 20 73 75 70 70 6f 72 74 20 43 2b 2b 20   to support C++ 
1290: 2f 63 6c 72 20 63 6f 6d 70 69 6c 69 6e 67 2e 26  /clr compiling.&
12a0: 6e 62 73 70 3b 20 0a 20 20 20 20 20 20 20 20 53  nbsp; .        S
12b0: 70 65 63 69 66 69 63 61 6c 6c 79 2c 20 61 6c 6c  pecifically, all
12c0: 20 74 68 65 20 69 6d 70 6c 69 63 69 74 20 63 61   the implicit ca
12d0: 73 74 73 20 74 68 72 6f 75 67 68 6f 75 74 20 74  sts throughout t
12e0: 68 65 20 63 6f 72 65 20 63 6f 64 65 62 61 73 65  he core codebase
12f0: 20 6d 75 73 74 20 62 65 20 0a 20 20 20 20 20 20   must be .      
1300: 20 20 6d 6f 64 69 66 69 65 64 2e 26 6e 62 73 70    modified.&nbsp
1310: 3b 20 54 68 65 72 65 20 61 72 65 20 73 65 76 65  ; There are seve
1320: 72 61 6c 20 68 75 6e 64 72 65 64 20 6f 66 20 74  ral hundred of t
1330: 68 65 73 65 20 63 61 73 74 73 20 61 6e 64 20 74  hese casts and t
1340: 68 65 79 20 6d 75 73 74 20 62 65 20 66 69 78 65  hey must be fixe
1350: 64 20 0a 20 20 20 20 20 20 20 20 75 70 20 65 76  d .        up ev
1360: 65 72 79 20 74 69 6d 65 20 61 20 6e 65 77 20 73  ery time a new s
1370: 71 6c 69 74 65 20 76 65 72 73 69 6f 6e 20 69 73  qlite version is
1380: 20 72 65 6c 65 61 73 65 64 2e 3c 2f 73 74 72 6f   released.</stro
1390: 6e 67 3e 3c 2f 70 3e 0a 20 20 20 20 3c 6f 6c 3e  ng></p>.    <ol>
13a0: 0a 20 20 20 20 20 20 3c 6c 69 3e 0a 20 20 20 20  .      <li>.    
13b0: 20 20 20 20 3c 46 4f 4e 54 20 63 6f 6c 6f 72 3d      <FONT color=
13c0: 22 73 69 6c 76 65 72 22 3e 44 6f 77 6e 6c 6f 61  "silver">Downloa
13d0: 64 20 74 68 65 20 6c 61 74 65 73 74 20 73 71 6c  d the latest sql
13e0: 69 74 65 33 20 73 6f 75 72 63 65 20 66 72 6f 6d  ite3 source from
13f0: 20 3c 2f 46 4f 4e 54 3e 3c 61 20 68 72 65 66 3d   </FONT><a href=
1400: 22 68 74 74 70 3a 2f 2f 77 77 77 2e 73 71 6c 69  "http://www.sqli
1410: 74 65 2e 6f 72 67 2f 64 6f 77 6e 6c 6f 61 64 2e  te.org/download.
1420: 68 74 6d 6c 22 3e 0a 20 20 20 20 20 20 20 20 20  html">.         
1430: 20 3c 46 4f 4e 54 20 63 6f 6c 6f 72 3d 22 73 69   <FONT color="si
1440: 6c 76 65 72 22 3e 68 74 74 70 3a 2f 2f 77 77 77  lver">http://www
1450: 2e 73 71 6c 69 74 65 2e 6f 72 67 2f 64 6f 77 6e  .sqlite.org/down
1460: 6c 6f 61 64 2e 68 74 6d 6c 3c 2f 46 4f 4e 54 3e  load.html</FONT>
1470: 3c 2f 61 3e 3c 46 4f 4e 54 20 63 6f 6c 6f 72 3d  </a><FONT color=
1480: 22 73 69 6c 76 65 72 22 3e 0a 20 20 20 20 20 20  "silver">.      
1490: 20 20 3c 2f 46 4f 4e 54 3e 0a 20 20 20 20 20 20    </FONT>.      
14a0: 3c 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 46 4f  <li>.        <FO
14b0: 4e 54 20 63 6f 6c 6f 72 3d 22 73 69 6c 76 65 72  NT color="silver
14c0: 22 3e 45 78 74 72 61 63 74 20 74 68 65 20 73 6f  ">Extract the so
14d0: 75 72 63 65 20 63 6f 64 65 20 74 6f 20 74 68 65  urce code to the
14e0: 20 3c 62 3e 53 51 4c 69 74 65 2e 49 6e 74 65 72   <b>SQLite.Inter
14f0: 6f 70 5c 73 72 63 3c 2f 62 3e 20 64 69 72 65 63  op\src</b> direc
1500: 74 6f 72 79 20 0a 20 20 20 20 20 20 20 20 20 20  tory .          
1510: 6f 66 20 74 68 69 73 20 70 72 6f 6a 65 63 74 20  of this project 
1520: 3c 2f 46 4f 4e 54 3e 0a 20 20 20 20 20 20 3c 6c  </FONT>.      <l
1530: 69 3e 0a 20 20 20 20 20 20 20 20 3c 46 4f 4e 54  i>.        <FONT
1540: 20 63 6f 6c 6f 72 3d 22 73 69 6c 76 65 72 22 3e   color="silver">
1550: 4f 70 65 6e 20 74 68 65 20 3c 62 3e 73 72 63 5c  Open the <b>src\
1560: 73 65 6c 65 63 74 2e 63 3c 2f 62 3e 20 66 69 6c  select.c</b> fil
1570: 65 2e 20 3c 2f 46 4f 4e 54 3e 0a 20 20 20 20 20  e. </FONT>.     
1580: 20 3c 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 46   <li>.        <F
1590: 4f 4e 54 20 63 6f 6c 6f 72 3d 22 73 69 6c 76 65  ONT color="silve
15a0: 72 22 3e 41 64 64 20 3c 62 3e 23 69 6e 63 6c 75  r">Add <b>#inclu
15b0: 64 65 20 22 2e 2e 2f 69 6e 74 65 72 6f 70 2e 68  de "../interop.h
15c0: 22 20 3c 2f 62 3e 74 6f 20 74 68 65 20 74 6f 70  " </b>to the top
15d0: 20 6f 66 20 74 68 65 20 66 69 6c 65 20 0a 20 20   of the file .  
15e0: 20 20 20 20 20 20 20 20 77 68 65 72 65 20 74 68          where th
15f0: 65 20 6f 74 68 65 72 20 69 6e 63 6c 75 64 65 27  e other include'
1600: 73 20 61 72 65 2e 20 3c 2f 46 4f 4e 54 3e 0a 20  s are. </FONT>. 
1610: 20 20 20 20 20 3c 6c 69 3e 0a 20 20 20 20 20 20       <li>.      
1620: 20 20 3c 46 4f 4e 54 20 63 6f 6c 6f 72 3d 22 73    <FONT color="s
1630: 69 6c 76 65 72 22 3e 53 63 72 6f 6c 6c 20 64 6f  ilver">Scroll do
1640: 77 6e 20 74 68 65 20 3c 62 3e 73 65 6c 65 63 74  wn the <b>select
1650: 2e 63 3c 2f 62 3e 20 66 69 6c 65 20 74 6f 20 61  .c</b> file to a
1660: 72 6f 75 6e 64 20 6c 69 6e 65 20 3c 62 3e 37 34  round line <b>74
1670: 38 3c 2f 62 3e 2e 26 6e 62 73 70 3b 20 0a 20 20  8</b>.&nbsp; .  
1680: 20 20 20 20 20 20 20 20 43 68 61 6e 67 65 20 74          Change t
1690: 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 66  he name of the f
16a0: 75 6e 63 74 69 6f 6e 20 3c 62 3e 73 74 61 74 69  unction <b>stati
16b0: 63 20 76 6f 69 64 20 67 65 6e 65 72 61 74 65 43  c void generateC
16c0: 6f 6c 75 6d 6e 4e 61 6d 65 73 20 3c 2f 62 3e 74  olumnNames </b>t
16d0: 6f 20 3c 62 3e 73 74 61 74 69 63 20 0a 20 20 20  o <b>static .   
16e0: 20 20 20 20 20 20 20 20 20 76 6f 69 64 20 5f 67           void _g
16f0: 65 6e 65 72 61 74 65 43 6f 6c 75 6d 6e 4e 61 6d  enerateColumnNam
1700: 65 73 3c 2f 62 3e 20 28 3c 69 3e 6e 6f 74 65 20  es</b> (<i>note 
1710: 74 68 65 20 75 6e 64 65 72 73 63 6f 72 65 20 69  the underscore i
1720: 6e 20 66 72 6f 6e 74 20 6f 66 20 74 68 65 20 6e  n front of the n
1730: 61 6d 65 3c 2f 69 3e 29 2e 0a 20 20 20 20 20 20  ame</i>)..      
1740: 20 20 3c 2f 46 4f 4e 54 3e 0a 20 20 20 20 20 20    </FONT>.      
1750: 3c 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 46 4f  <li>.        <FO
1760: 4e 54 20 63 6f 6c 6f 72 3d 22 73 69 6c 76 65 72  NT color="silver
1770: 22 3e 43 6f 6d 70 69 6c 65 20 69 74 2e 20 3c 2f  ">Compile it. </
1780: 46 4f 4e 54 3e 0a 20 20 20 20 20 20 3c 2f 6c 69  FONT>.      </li
1790: 3e 0a 20 20 20 20 3c 2f 6f 6c 3e 0a 20 20 20 20  >.    </ol>.    
17a0: 3c 62 3e 3c 2f 62 3e 0a 20 20 20 20 3c 68 32 3e  <b></b>.    <h2>
17b0: 0a 20 20 20 20 20 20 3c 62 3e 56 65 72 73 69 6f  .      <b>Versio
17c0: 6e 20 48 69 73 74 6f 72 79 3c 2f 62 3e 3c 2f 68  n History</b></h
17d0: 32 3e 0a 20 20 20 20 3c 62 3e 31 2e 30 2e 31 32  2>.    <b>1.0.12
17e0: 20 2d 20 41 75 67 75 73 74 20 32 2c 20 32 30 30   - August 2, 200
17f0: 35 3c 2f 62 3e 3c 62 72 3e 0a 20 20 20 20 3c 75  5</b><br>.    <u
1800: 6c 3e 0a 20 20 20 20 20 20 3c 6c 69 3e 0a 20 20  l>.      <li>.  
1810: 20 20 20 20 20 20 46 75 6c 6c 20 73 75 70 70 6f        Full suppo
1820: 72 74 20 66 6f 72 20 74 68 65 20 43 6f 6d 70 61  rt for the Compa
1830: 63 74 20 46 72 61 6d 65 77 6f 72 6b 2e 26 6e 62  ct Framework.&nb
1840: 73 70 3b 20 45 61 63 68 20 62 75 69 6c 64 20 28  sp; Each build (
1850: 44 65 62 75 67 2f 52 65 6c 65 61 73 65 29 20 6e  Debug/Release) n
1860: 6f 77 20 0a 20 20 20 20 20 20 20 20 68 61 73 20  ow .        has 
1870: 61 26 6e 62 73 70 3b 70 6c 61 74 66 6f 72 6d 2c  a&nbsp;platform,
1880: 20 65 69 74 68 65 72 20 57 69 6e 33 32 20 6f 72   either Win32 or
1890: 20 43 6f 6d 70 61 63 74 20 46 72 61 6d 65 77 6f   Compact Framewo
18a0: 72 6b 2e 26 6e 62 73 70 3b 20 54 68 65 20 63 6f  rk.&nbsp; The co
18b0: 72 72 65 63 74 20 0a 20 20 20 20 20 20 20 20 70  rrect .        p
18c0: 72 6f 6a 65 63 74 73 20 61 72 65 20 62 75 69 6c  rojects are buil
18d0: 74 20 61 63 63 6f 72 64 69 6e 67 6c 79 2e 26 6e  t accordingly.&n
18e0: 62 73 70 3b 20 53 65 65 20 74 68 65 26 6e 62 73  bsp; See the&nbs
18f0: 70 3b 3c 61 20 68 72 65 66 3d 22 23 72 65 64 69  p;<a href="#redi
1900: 73 74 22 3e 44 69 73 74 72 69 62 75 74 69 6e 67  st">Distributing
1910: 20 0a 20 20 20 20 20 20 20 20 20 20 53 51 4c 69   .          SQLi
1920: 74 65 3c 2f 61 3e 20 73 65 63 74 69 6f 6e 20 66  te</a> section f
1930: 6f 72 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 6f  or information o
1940: 6e 20 77 68 61 74 20 66 69 6c 65 73 20 6e 65 65  n what files nee
1950: 64 20 74 6f 20 62 65 20 64 69 73 74 72 69 62 75  d to be distribu
1960: 74 65 64 20 66 6f 72 20 0a 20 20 20 20 20 20 20  ted for .       
1970: 20 65 61 63 68 20 70 6c 61 74 66 6f 72 6d 2e 26   each platform.&
1980: 6e 62 73 70 3b 3c 2f 6c 69 3e 0a 20 20 20 20 3c  nbsp;</li>.    <
1990: 2f 75 6c 3e 0a 20 20 20 20 3c 62 3e 31 2e 30 2e  /ul>.    <b>1.0.
19a0: 31 31 20 2d 20 41 75 67 75 73 74 20 31 2c 20 32  11 - August 1, 2
19b0: 30 30 35 3c 2f 62 3e 3c 62 72 3e 0a 20 20 20 20  005</b><br>.    
19c0: 3c 75 6c 3e 0a 20 20 20 20 20 20 3c 6c 69 3e 0a  <ul>.      <li>.
19d0: 20 20 20 20 20 20 20 20 3c 73 74 72 6f 6e 67 3e          <strong>
19e0: 46 6f 72 20 65 76 65 72 79 74 68 69 6e 67 20 65  For everything e
19f0: 78 63 65 70 74 20 74 68 65 20 43 6f 6d 70 61 63  xcept the Compac
1a00: 74 20 46 72 61 6d 65 77 6f 72 6b 2c 20 53 79 73  t Framework, Sys
1a10: 74 65 6d 2e 44 61 74 61 2e 53 51 4c 69 74 65 2e  tem.Data.SQLite.
1a20: 44 4c 4c 20 69 73 20 0a 20 20 20 20 20 20 20 20  DLL is .        
1a30: 20 20 6e 6f 77 20 74 68 65 20 3c 65 6d 3e 6f 6e    now the <em>on
1a40: 6c 79 3c 2f 65 6d 3e 20 44 4c 4c 20 72 65 71 75  ly</em> DLL requ
1a50: 69 72 65 64 20 74 6f 20 75 73 65 20 74 68 69 73  ired to use this
1a60: 20 70 72 6f 76 69 64 65 72 21 3c 2f 73 74 72 6f   provider!</stro
1a70: 6e 67 3e 26 6e 62 73 70 3b 20 54 68 65 20 0a 20  ng>&nbsp; The . 
1a80: 20 20 20 20 20 61 73 73 65 6d 62 6c 79 20 69 73       assembly is
1a90: 20 6e 6f 77 20 61 20 6d 75 6c 74 69 2d 6d 6f 64   now a multi-mod
1aa0: 75 6c 65 20 61 73 73 65 6d 62 6c 79 2c 20 63 6f  ule assembly, co
1ab0: 6e 74 61 69 6e 69 6e 67 20 62 6f 74 68 20 74 68  ntaining both th
1ac0: 65 20 6e 61 74 69 76 65 20 53 51 4c 69 74 65 33  e native SQLite3
1ad0: 20 0a 20 20 20 20 20 20 63 6f 64 65 62 61 73 65   .      codebase
1ae0: 20 61 6e 64 20 74 68 65 20 43 23 20 63 6c 61 73   and the C# clas
1af0: 73 65 73 20 62 75 69 6c 74 20 6f 6e 20 74 6f 70  ses built on top
1b00: 20 6f 66 20 69 74 2e 26 6e 62 73 70 3b 20 54 68   of it.&nbsp; Th
1b10: 65 20 43 6f 6d 70 61 63 74 20 46 72 61 6d 65 77  e Compact Framew
1b20: 6f 72 6b 20 0a 20 20 20 20 20 20 76 65 72 73 69  ork .      versi
1b30: 6f 6e 20 28 77 68 65 6e 20 63 6f 6d 70 6c 65 74  on (when complet
1b40: 65 64 29 20 77 69 6c 6c 20 6e 6f 74 20 62 65 20  ed) will not be 
1b50: 61 62 6c 65 20 74 6f 20 73 75 70 70 6f 72 74 20  able to support 
1b60: 74 68 69 73 20 66 65 61 74 75 72 65 2c 20 73 6f  this feature, so
1b70: 20 62 61 63 6b 77 61 72 64 73 20 0a 20 20 20 20   backwards .    
1b80: 20 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 20    compatibility 
1b90: 77 69 74 68 20 74 68 65 20 43 6f 6d 70 61 63 74  with the Compact
1ba0: 20 46 72 61 6d 65 77 6f 72 6b 20 68 61 73 20 62   Framework has b
1bb0: 65 65 6e 20 70 72 65 73 65 72 76 65 64 20 66 6f  een preserved fo
1bc0: 72 20 74 68 65 20 66 75 74 75 72 65 2e 0a 20 20  r the future..  
1bd0: 20 20 20 20 3c 6c 69 3e 0a 20 20 20 20 20 20 20      <li>.       
1be0: 20 46 69 78 65 64 20 61 20 62 75 67 20 69 6e 20   Fixed a bug in 
1bf0: 53 51 4c 69 74 65 43 6f 6d 6d 61 6e 64 2e 45 78  SQLiteCommand.Ex
1c00: 65 63 75 74 65 53 63 61 6c 61 72 28 29 20 74 68  ecuteScalar() th
1c10: 61 74 20 63 61 75 73 65 64 20 69 74 20 74 6f 20  at caused it to 
1c20: 73 74 6f 70 20 65 78 65 63 75 74 69 6e 67 20 0a  stop executing .
1c30: 20 20 20 20 20 20 20 20 63 6f 6d 6d 61 6e 64 73          commands
1c40: 20 6f 6e 63 65 20 69 74 20 6f 62 74 61 69 6e 65   once it obtaine
1c50: 64 20 74 68 65 20 66 69 72 73 74 20 63 6f 6c 75  d the first colu
1c60: 6d 6e 20 6f 66 20 74 68 65 20 66 69 72 73 74 20  mn of the first 
1c70: 72 6f 77 2d 72 65 74 75 72 6e 69 6e 67 20 0a 20  row-returning . 
1c80: 20 20 20 20 20 20 20 72 65 73 75 6c 74 73 65 74         resultset
1c90: 2e 26 6e 62 73 70 3b 20 41 6e 79 20 72 65 6d 61  .&nbsp; Any rema
1ca0: 69 6e 69 6e 67 20 73 74 61 74 65 6d 65 6e 74 73  ining statements
1cb0: 20 61 66 74 65 72 20 74 68 65 20 72 6f 77 2d 72   after the row-r
1cc0: 65 74 75 72 6e 69 6e 67 20 73 74 61 74 65 6d 65  eturning stateme
1cd0: 6e 74 20 77 61 73 20 0a 20 20 20 20 20 20 20 20  nt was .        
1ce0: 69 67 6e 6f 72 65 64 2e 3c 2f 6c 69 3e 0a 20 20  ignored.</li>.  
1cf0: 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 3c 62 3e 31    </ul>.    <b>1
1d00: 2e 30 2e 31 30 20 2d 20 4a 75 6e 65 20 31 30 2c  .0.10 - June 10,
1d10: 20 32 30 30 35 3c 2f 62 3e 3c 62 72 3e 0a 20 20   2005</b><br>.  
1d20: 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 3c 6c 69    <ul>.      <li
1d30: 3e 0a 20 20 20 20 20 20 46 69 78 65 64 20 61 20  >.      Fixed a 
1d40: 62 75 67 20 69 6e 20 74 68 65 20 53 51 4c 69 74  bug in the SQLit
1d50: 65 33 2e 63 73 20 50 72 65 70 61 72 65 28 29 20  e3.cs Prepare() 
1d60: 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 63 72  function that cr
1d70: 65 61 74 65 64 20 61 20 73 74 61 74 65 6d 65 6e  eated a statemen
1d80: 74 20 65 76 65 6e 20 0a 20 20 20 20 20 20 77 68  t even .      wh
1d90: 65 6e 20 74 68 65 20 53 51 4c 69 74 65 20 65 6e  en the SQLite en
1da0: 67 69 6e 65 20 72 65 74 75 72 6e 65 64 20 61 20  gine returned a 
1db0: 4e 55 4c 4c 20 70 6f 69 6e 74 65 72 2e 20 54 79  NULL pointer. Ty
1dc0: 70 69 63 61 6c 6c 79 20 74 68 69 73 20 6f 63 63  pically this occ
1dd0: 75 72 73 20 77 68 65 6e 20 0a 20 20 20 20 20 20  urs when .      
1de0: 6d 75 6c 74 69 70 6c 65 20 73 74 61 74 65 6d 65  multiple stateme
1df0: 6e 74 73 20 61 72 65 20 70 72 6f 63 65 73 73 65  nts are processe
1e00: 64 20 61 6e 64 20 74 68 65 72 65 20 61 72 65 20  d and there are 
1e10: 74 72 61 69 6c 69 6e 67 20 63 6f 6d 6d 65 6e 74  trailing comment
1e20: 73 20 61 74 20 74 68 65 20 65 6e 64 20 6f 66 20  s at the end of 
1e30: 0a 20 20 20 20 20 20 74 68 65 20 73 74 61 74 65  .      the state
1e40: 6d 65 6e 74 2e 0a 20 20 20 20 20 20 3c 6c 69 3e  ment..      <li>
1e50: 0a 20 20 20 20 20 20 20 20 46 69 78 65 64 20 61  .        Fixed a
1e60: 20 62 75 67 20 69 6e 20 53 51 4c 69 74 65 53 74   bug in SQLiteSt
1e70: 61 74 65 6d 65 6e 74 2e 63 73 20 74 68 61 74 20  atement.cs that 
1e80: 72 65 74 72 69 65 76 65 64 20 70 61 72 61 6d 65  retrieved parame
1e90: 74 65 72 20 6e 61 6d 65 73 20 66 6f 72 20 61 20  ter names for a 
1ea0: 0a 20 20 20 20 20 20 20 20 70 61 72 61 6d 65 74  .        paramet
1eb0: 65 72 69 7a 65 64 20 71 75 65 72 79 2e 26 6e 62  erized query.&nb
1ec0: 73 70 3b 20 53 51 4c 69 74 65 27 73 20 70 61 72  sp; SQLite's par
1ed0: 61 6d 65 74 65 72 73 20 61 72 65 20 31 2d 62 61  ameters are 1-ba
1ee0: 73 65 64 2c 20 61 6e 64 20 74 68 65 20 66 75 6e  sed, and the fun
1ef0: 63 74 69 6f 6e 20 0a 20 20 20 20 20 20 20 20 77  ction .        w
1f00: 61 73 20 73 74 61 72 74 69 6e 67 20 61 74 20 30  as starting at 0
1f10: 2e 26 6e 62 73 70 3b 20 54 68 69 73 20 77 61 73  .&nbsp; This was
1f20: 20 66 69 6e 65 20 77 68 65 6e 20 61 6c 6c 20 70   fine when all p
1f30: 61 72 61 6d 65 74 65 72 73 20 77 65 72 65 20 75  arameters were u
1f40: 6e 6e 61 6d 65 64 2c 20 62 75 74 20 0a 20 20 20  nnamed, but .   
1f50: 20 20 20 20 20 66 6f 72 20 6e 61 6d 65 64 20 70       for named p
1f60: 61 72 61 6d 65 74 65 72 73 20 69 74 20 63 61 75  arameters it cau
1f70: 73 65 64 20 74 68 65 20 70 61 72 61 6d 65 74 65  sed the paramete
1f80: 72 73 20 74 6f 20 62 65 20 6f 75 74 20 6f 66 20  rs to be out of 
1f90: 77 68 61 63 6b 2e 3c 2f 6c 69 3e 0a 20 20 20 20  whack.</li>.    
1fa0: 3c 2f 75 6c 3e 0a 20 20 20 20 3c 62 3e 31 2e 30  </ul>.    <b>1.0
1fb0: 2e 30 39 61 20 2d 20 4d 61 79 20 32 35 2c 20 32  .09a - May 25, 2
1fc0: 30 30 35 3c 2f 62 3e 3c 62 72 3e 0a 20 20 20 20  005</b><br>.    
1fd0: 3c 75 6c 3e 0a 20 20 20 20 20 20 3c 6c 69 3e 0a  <ul>.      <li>.
1fe0: 20 20 20 20 20 20 46 69 78 65 64 20 61 20 62 72        Fixed a br
1ff0: 6f 6b 65 6e 20 68 65 6c 70 66 69 6c 65 20 61 6e  oken helpfile an
2000: 64 20 63 6f 72 72 65 63 74 65 64 20 73 6f 6d 65  d corrected some
2010: 20 6f 62 73 6f 6c 65 74 65 20 68 65 6c 70 20 72   obsolete help r
2020: 65 6d 61 72 6b 73 20 69 6e 20 0a 20 20 20 20 20  emarks in .     
2030: 20 53 51 4c 69 74 65 46 75 6e 63 74 69 6f 6e 2e   SQLiteFunction.
2040: 63 73 3c 6c 69 3e 41 64 64 65 64 20 61 20 76 65  cs<li>Added a ve
2050: 72 73 69 6f 6e 20 72 65 73 6f 75 72 63 65 20 74  rsion resource t
2060: 6f 20 74 68 65 20 53 51 4c 69 74 65 2e 49 6e 74  o the SQLite.Int
2070: 65 72 6f 70 2e 44 4c 4c 2e 26 6e 62 73 70 3b 3c  erop.DLL.&nbsp;<
2080: 2f 6c 69 3e 3c 2f 75 6c 3e 0a 20 20 20 20 3c 62  /li></ul>.    <b
2090: 3e 31 2e 30 2e 30 39 20 2d 20 4d 61 79 20 32 34  >1.0.09 - May 24
20a0: 2c 20 32 30 30 35 3c 2f 62 3e 3c 62 72 3e 0a 20  , 2005</b><br>. 
20b0: 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 3c 6c     <ul>.      <l
20c0: 69 3e 0a 20 20 20 20 20 20 43 6f 64 65 20 6d 65  i>.      Code me
20d0: 72 67 65 20 77 69 74 68 20 74 68 65 20 6c 61 74  rge with the lat
20e0: 65 73 74 20 33 2e 32 31 20 76 65 72 73 69 6f 6e  est 3.21 version
20f0: 20 6f 66 20 53 51 4c 69 74 65 2e 0a 20 20 20 20   of SQLite..    
2100: 20 20 3c 6c 69 3e 0a 20 20 20 20 20 20 20 20 52    <li>.        R
2110: 65 6d 6f 76 65 64 20 6f 62 73 6f 6c 65 74 65 20  emoved obsolete 
2120: 6d 65 74 68 6f 64 73 20 61 6e 64 20 70 72 6f 70  methods and prop
2130: 65 72 74 69 65 73 20 66 6f 72 20 57 68 69 64 62  erties for Whidb
2140: 65 79 20 42 65 74 61 20 32 3c 2f 6c 69 3e 3c 2f  ey Beta 2</li></
2150: 75 6c 3e 0a 20 20 20 20 3c 62 3e 31 2e 30 2e 30  ul>.    <b>1.0.0
2160: 38 20 52 65 66 72 65 73 68 20 2d 20 4d 61 72 20  8 Refresh - Mar 
2170: 32 34 2c 20 32 30 30 35 3c 62 72 3e 0a 20 20 20  24, 2005<br>.   
2180: 20 3c 2f 62 3e 0a 20 20 20 20 3c 75 6c 3e 0a 20   </b>.    <ul>. 
2190: 20 20 20 20 20 3c 6c 69 3e 0a 20 20 20 20 20 20       <li>.      
21a0: 43 6f 64 65 20 6d 65 72 67 65 20 77 69 74 68 20  Code merge with 
21b0: 74 68 65 20 6c 61 74 65 73 74 20 33 2e 32 30 20  the latest 3.20 
21c0: 76 65 72 73 69 6f 6e 20 6f 66 20 53 51 4c 69 74  version of SQLit
21d0: 65 2e 0a 20 20 20 20 20 20 3c 6c 69 3e 0a 20 20  e..      <li>.  
21e0: 20 20 20 20 20 20 52 65 63 6f 6d 70 69 6c 65 64        Recompiled
21f0: 20 74 68 65 20 68 65 6c 70 20 66 69 6c 65 20 74   the help file t
2200: 6f 20 66 69 78 20 61 20 62 75 69 6c 64 20 65 72  o fix a build er
2210: 72 6f 72 20 69 6e 20 69 74 2e 3c 2f 6c 69 3e 0a  ror in it.</li>.
2220: 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 3c 62      </ul>.    <b
2230: 3e 31 2e 30 2e 30 38 20 2d 20 4d 61 72 20 31 31  >1.0.08 - Mar 11
2240: 2c 20 32 30 30 35 3c 62 72 3e 0a 20 20 20 20 3c  , 2005<br>.    <
2250: 2f 62 3e 0a 20 20 20 20 3c 75 6c 3e 0a 20 20 20  /b>.    <ul>.   
2260: 20 20 20 3c 6c 69 3e 0a 20 20 20 20 20 20 41 64     <li>.      Ad
2270: 64 65 64 20 61 64 64 69 74 69 6f 6e 61 6c 20 23  ded additional #
2280: 69 66 20 73 74 61 74 65 6d 65 6e 74 73 20 74 6f  if statements to
2290: 20 73 75 70 70 6f 72 74 20 74 68 65 20 6f 6c 64   support the old
22a0: 20 62 65 74 61 20 31 20 65 64 69 74 69 6f 6e 20   beta 1 edition 
22b0: 6f 66 20 56 53 32 30 30 35 2e 0a 20 20 20 20 20  of VS2005..     
22c0: 20 3c 6c 69 3e 0a 20 20 20 20 20 20 20 20 43 6f   <li>.        Co
22d0: 64 65 20 6d 65 72 67 65 64 20 74 68 65 20 53 51  de merged the SQ
22e0: 4c 69 74 65 20 33 2e 31 34 20 73 6f 75 72 63 65  Lite 3.14 source
22f0: 2e 3c 2f 6c 69 3e 0a 20 20 20 20 3c 2f 75 6c 3e  .</li>.    </ul>
2300: 0a 20 20 20 20 3c 62 3e 31 2e 30 2e 30 37 20 2d  .    <b>1.0.07 -
2310: 20 4d 61 72 20 35 2c 20 32 30 30 35 3c 2f 62 3e   Mar 5, 2005</b>
2320: 3c 62 72 3e 0a 20 20 20 20 3c 75 6c 3e 0a 20 20  <br>.    <ul>.  
2330: 20 20 20 20 3c 6c 69 3e 0a 20 20 20 20 20 20 4d      <li>.      M
2340: 61 64 65 20 6d 6f 72 65 20 6f 70 74 69 6d 69 7a  ade more optimiz
2350: 61 74 69 6f 6e 73 20 74 6f 20 66 72 65 71 75 65  ations to freque
2360: 6e 74 6c 79 2d 63 61 6c 6c 65 64 20 66 75 6e 63  ntly-called func
2370: 74 69 6f 6e 73 2c 20 72 65 73 75 6c 74 69 6e 67  tions, resulting
2380: 20 69 6e 20 0a 20 20 20 20 20 20 73 69 67 6e 69   in .      signi
2390: 66 69 63 61 6e 74 20 70 65 72 66 6f 72 6d 61 6e  ficant performan
23a0: 63 65 20 67 61 69 6e 73 20 69 6e 20 61 6c 6c 20  ce gains in all 
23b0: 74 65 73 74 73 2e 0a 20 20 20 20 20 20 3c 6c 69  tests..      <li
23c0: 3e 0a 20 20 20 20 20 20 20 20 52 65 63 6f 6d 70  >.        Recomp
23d0: 69 6c 65 64 20 74 68 65 20 62 69 6e 61 72 69 65  iled the binarie
23e0: 73 20 75 73 69 6e 67 20 74 68 65 20 6c 61 74 65  s using the late
23f0: 73 74 20 56 53 32 30 30 35 20 46 65 62 72 75 61  st VS2005 Februa
2400: 72 79 20 43 54 50 2c 20 72 65 73 75 6c 74 69 6e  ry CTP, resultin
2410: 67 20 69 6e 20 79 65 74 20 0a 20 20 20 20 20 20  g in yet .      
2420: 20 20 6d 6f 72 65 20 73 69 67 6e 69 66 69 63 61    more significa
2430: 6e 74 20 73 70 65 65 64 20 67 61 69 6e 73 2e 26  nt speed gains.&
2440: 6e 62 73 70 3b 20 54 68 65 20 31 30 30 6b 20 69  nbsp; The 100k i
2450: 6e 73 65 72 74 20 74 65 73 74 20 75 73 65 64 20  nsert test used 
2460: 74 6f 20 74 61 6b 65 20 33 2e 35 20 0a 20 20 20  to take 3.5 .   
2470: 20 20 20 20 20 73 65 63 6f 6e 64 73 20 61 6e 64       seconds and
2480: 20 74 68 65 20 69 6e 73 65 72 74 77 69 74 68 69   the insertwithi
2490: 64 65 6e 74 69 74 79 20 74 6f 6f 6b 20 61 6c 6d  dentity took alm
24a0: 6f 73 74 20 38 20 73 65 63 6f 6e 64 73 2e 26 6e  ost 8 seconds.&n
24b0: 62 73 70 3b 20 57 69 74 68 20 74 68 65 20 61 62  bsp; With the ab
24c0: 6f 76 65 20 0a 20 20 20 20 20 20 20 20 74 77 6f  ove .        two
24d0: 20 63 68 61 6e 67 65 73 2c 20 74 68 6f 73 65 20   changes, those 
24e0: 74 65 73 74 73 20 61 72 65 20 6e 6f 77 20 65 78  tests are now ex
24f0: 65 63 75 74 69 6e 67 20 69 6e 20 31 2e 39 20 61  ecuting in 1.9 a
2500: 6e 64 20 34 2e 39 20 73 65 63 6f 6e 64 73 20 72  nd 4.9 seconds r
2510: 65 73 70 65 63 74 69 76 65 6c 79 2e 3c 2f 6c 69  espectively.</li
2520: 3e 3c 2f 75 6c 3e 0a 20 20 20 20 3c 70 3e 0a 20  ></ul>.    <p>. 
2530: 20 20 20 20 20 3c 62 3e 31 2e 30 2e 30 36 20 2d       <b>1.0.06 -
2540: 20 4d 61 72 20 31 2c 20 32 30 30 35 3c 62 72 3e   Mar 1, 2005<br>
2550: 0a 20 20 20 20 20 20 3c 2f 62 3e 0a 20 20 20 20  .      </b>.    
2560: 3c 2f 70 3e 0a 20 20 20 20 3c 75 6c 3e 0a 20 20  </p>.    <ul>.  
2570: 20 20 20 20 3c 6c 69 3e 0a 20 20 20 20 20 20 53      <li>.      S
2580: 70 65 65 64 2d 75 70 73 20 74 6f 20 53 51 4c 69  peed-ups to SQLi
2590: 74 65 44 61 74 61 52 65 61 64 65 72 2e 26 6e 62  teDataReader.&nb
25a0: 73 70 3b 20 49 74 20 77 61 73 20 69 6e 74 65 72  sp; It was inter
25b0: 6f 70 27 69 6e 67 20 75 6e 6e 65 63 65 73 73 61  op'ing unnecessa
25c0: 72 69 6c 79 20 65 76 65 72 79 20 0a 20 20 20 20  rily every .    
25d0: 20 20 74 69 6d 65 20 69 74 20 74 72 69 65 64 20    time it tried 
25e0: 74 6f 20 66 65 74 63 68 20 61 20 66 69 65 6c 64  to fetch a field
25f0: 20 64 75 65 20 74 6f 20 61 20 6c 6f 67 69 63 20   due to a logic 
2600: 65 72 72 6f 72 2e 0a 20 20 20 20 20 20 3c 6c 69  error..      <li
2610: 3e 0a 20 20 20 20 20 20 43 68 61 6e 67 65 64 2f  >.      Changed/
2620: 41 64 64 65 64 20 73 6f 6d 65 20 63 6f 64 65 20  Added some code 
2630: 74 6f 20 53 51 4c 69 74 65 43 6f 6e 76 65 72 74  to SQLiteConvert
2640: 27 73 20 69 6e 74 65 72 6e 61 6c 20 44 62 54 79  's internal DbTy
2650: 70 65 2c 20 54 79 70 65 20 61 6e 64 20 0a 20 20  pe, Type and .  
2660: 20 20 20 20 54 79 70 65 41 66 66 69 6e 69 74 79      TypeAffinity
2670: 20 66 75 6e 63 74 69 6f 6e 73 2e 0a 20 20 20 20   functions..    
2680: 20 20 3c 6c 69 3e 0a 20 20 20 20 20 20 46 69 78    <li>.      Fix
2690: 65 64 20 74 68 65 20 53 51 4c 69 74 65 44 61 74  ed the SQLiteDat
26a0: 61 52 65 61 64 65 72 20 74 6f 20 6f 62 65 79 20  aReader to obey 
26b0: 74 68 65 20 66 6c 61 67 73 20 73 65 74 20 69 6e  the flags set in
26c0: 20 74 68 65 20 6f 70 74 69 6f 6e 61 6c 20 0a 20   the optional . 
26d0: 20 20 20 20 20 43 6f 6d 6d 61 6e 64 42 65 68 61       CommandBeha
26e0: 76 69 6f 72 20 66 6c 61 67 20 66 72 6f 6d 20 53  vior flag from S
26f0: 51 4c 69 74 65 43 6f 6d 6d 61 6e 64 2e 45 78 65  QLiteCommand.Exe
2700: 63 75 74 65 52 65 61 64 65 72 28 29 2e 0a 20 20  cuteReader()..  
2710: 20 20 20 20 3c 6c 69 3e 0a 20 20 20 20 20 20 43      <li>.      C
2720: 68 61 6e 67 65 64 20 74 68 65 20 64 65 66 61 75  hanged the defau
2730: 6c 74 20 70 61 67 65 20 73 69 7a 65 20 74 6f 20  lt page size to 
2740: 31 30 32 34 20 74 6f 20 72 65 66 6c 65 63 74 20  1024 to reflect 
2750: 74 68 65 20 64 65 66 61 75 6c 74 73 20 6f 66 20  the defaults of 
2760: 53 51 4c 69 74 65 2e 26 6e 62 73 70 3b 20 0a 20  SQLite.&nbsp; . 
2770: 20 20 20 20 20 49 67 6e 6f 72 65 73 20 74 68 65       Ignores the
2780: 20 22 50 61 67 65 20 53 69 7a 65 22 20 63 6f 6e   "Page Size" con
2790: 6e 65 63 74 69 6f 6e 20 73 74 72 69 6e 67 20 6f  nection string o
27a0: 70 74 69 6f 6e 20 66 6f 72 20 6d 65 6d 6f 72 79  ption for memory
27b0: 20 64 61 74 61 62 61 73 65 73 2c 20 61 73 20 74   databases, as t
27c0: 65 73 74 73 20 0a 20 20 20 20 20 20 72 65 76 65  ests .      reve
27d0: 61 6c 65 64 20 74 68 61 74 20 63 68 61 6e 67 69  aled that changi
27e0: 6e 67 20 69 74 20 72 65 73 75 6c 74 65 64 20 69  ng it resulted i
27f0: 6e 20 6d 65 6d 6f 72 79 20 63 6f 72 72 75 70 74  n memory corrupt
2800: 69 6f 6e 20 65 72 72 6f 72 73 2e 0a 20 20 20 20  ion errors..    
2810: 20 20 3c 6c 69 3e 0a 20 20 20 20 20 20 20 20 50    <li>.        P
2820: 65 72 66 6f 72 6d 61 6e 63 65 20 65 6e 68 61 6e  erformance enhan
2830: 63 65 6d 65 6e 74 73 20 74 6f 20 74 68 65 20 53  cements to the S
2840: 51 4c 69 74 65 43 6f 6d 6d 61 6e 64 20 61 6e 64  QLiteCommand and
2850: 20 53 51 4c 69 74 65 53 74 61 74 65 6d 65 6e 74   SQLiteStatement
2860: 20 63 6c 61 73 73 65 73 20 77 68 69 63 68 20 0a   classes which .
2870: 20 20 20 20 20 20 20 20 72 65 64 75 63 65 64 20          reduced 
2880: 74 68 65 20 31 30 30 2c 30 30 30 20 72 6f 77 20  the 100,000 row 
2890: 69 6e 73 65 72 74 20 65 78 65 63 75 74 69 6f 6e  insert execution
28a0: 20 74 69 6d 65 20 61 73 20 77 65 6c 6c 20 61 73   time as well as
28b0: 20 74 68 65 20 76 61 72 69 6f 75 73 20 46 75 6e   the various Fun
28c0: 63 74 69 6f 6e 20 0a 20 20 20 20 20 20 20 20 65  ction .        e
28d0: 78 65 63 75 74 69 6f 6e 20 74 69 6d 65 73 20 73  xecution times s
28e0: 69 67 6e 69 66 69 63 61 6e 74 6c 79 2e 3c 2f 6c  ignificantly.</l
28f0: 69 3e 0a 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20  i>.    </ul>.   
2900: 20 3c 62 3e 0a 20 20 20 20 20 20 3c 62 72 3e 0a   <b>.      <br>.
2910: 20 20 20 20 20 20 31 2e 30 2e 30 35 20 2d 20 46        1.0.05 - F
2920: 65 62 20 32 35 2c 20 32 30 30 35 3c 2f 62 3e 0a  eb 25, 2005</b>.
2930: 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 3c      <ul>.      <
2940: 6c 69 3e 0a 20 20 20 20 20 20 46 69 78 65 64 20  li>.      Fixed 
2950: 74 68 65 20 53 51 4c 69 74 65 33 20 43 23 20 63  the SQLite3 C# c
2960: 6c 61 73 73 20 73 74 65 70 2f 72 65 73 65 74 20  lass step/reset 
2970: 66 75 6e 63 74 69 6f 6e 73 20 74 6f 20 61 63 63  functions to acc
2980: 6f 6d 6f 64 61 74 65 20 73 63 68 65 6d 61 20 63  omodate schema c
2990: 68 61 6e 67 65 73 20 0a 20 20 20 20 20 20 74 68  hanges .      th
29a0: 61 74 20 69 6e 76 61 6c 69 64 61 74 65 20 61 20  at invalidate a 
29b0: 70 72 65 70 61 72 65 64 20 73 74 61 74 65 6d 65  prepared stateme
29c0: 6e 74 2e 26 6e 62 73 70 3b 20 53 74 61 74 65 6d  nt.&nbsp; Statem
29d0: 65 6e 74 73 20 61 72 65 20 72 65 63 6f 6d 70 69  ents are recompi
29e0: 6c 65 64 20 0a 20 20 20 20 20 20 74 72 61 6e 73  led .      trans
29f0: 70 61 72 65 6e 74 6c 79 2e 0a 20 20 20 20 20 20  parently..      
2a00: 3c 6c 69 3e 0a 20 20 20 20 20 20 4d 6f 76 65 64  <li>.      Moved
2a10: 20 61 6c 6c 20 6e 61 74 69 76 65 20 44 4c 4c 20   all native DLL 
2a20: 64 65 63 6c 61 72 61 74 69 6f 6e 73 20 74 6f 20  declarations to 
2a30: 61 6e 20 55 6e 73 61 66 65 4e 61 74 69 76 65 4d  an UnsafeNativeM
2a40: 65 74 68 6f 64 73 20 63 6c 61 73 73 2e 0a 20 20  ethods class..  
2a50: 20 20 20 20 3c 6c 69 3e 0a 20 20 20 20 20 20 53      <li>.      S
2a60: 70 6c 69 74 20 73 65 76 65 72 61 6c 20 63 6c 61  plit several cla
2a70: 73 73 65 73 20 69 6e 74 6f 20 74 68 65 69 72 20  sses into their 
2a80: 6f 77 6e 20 6d 6f 64 75 6c 65 73 20 66 6f 72 20  own modules for 
2a90: 72 65 61 64 61 62 69 6c 69 74 79 2e 0a 20 20 20  readability..   
2aa0: 20 20 20 3c 6c 69 3e 0a 20 20 20 20 20 20 52 65     <li>.      Re
2ab0: 6e 61 6d 65 64 20 6d 61 6e 79 20 69 6e 74 65 72  named many inter
2ac0: 6e 61 6c 20 76 61 72 69 61 62 6c 65 73 2c 20 72  nal variables, r
2ad0: 65 76 69 65 77 65 64 20 61 63 63 65 73 73 20 74  eviewed access t
2ae0: 6f 20 76 61 72 69 61 62 6c 65 73 20 6d 61 72 6b  o variables mark
2af0: 65 64 20 61 73 20 0a 20 20 20 20 20 20 69 6e 74  ed as .      int
2b00: 65 72 6e 61 6c 20 61 6e 64 20 61 6c 74 65 72 65  ernal and altere
2b10: 64 20 74 68 65 69 72 20 70 72 6f 74 65 63 74 69  d their protecti
2b20: 6f 6e 20 6c 65 76 65 6c 73 20 61 63 63 6f 72 64  on levels accord
2b30: 69 6e 67 6c 79 2e 0a 20 20 20 20 20 20 3c 6c 69  ingly..      <li
2b40: 3e 0a 20 20 20 20 20 20 44 75 65 20 74 6f 20 74  >.      Due to t
2b50: 68 65 20 70 72 65 73 65 6e 63 65 20 6f 66 20 74  he presence of t
2b60: 68 65 20 61 6c 74 65 72 65 64 20 73 71 6c 69 74  he altered sqlit
2b70: 65 33 20 63 6f 64 65 62 61 73 65 20 61 6e 64 20  e3 codebase and 
2b80: 73 6f 20 6d 61 6e 79 20 61 64 64 65 64 20 69 6e  so many added in
2b90: 74 65 72 6f 70 20 0a 20 20 20 20 20 20 66 75 6e  terop .      fun
2ba0: 63 74 69 6f 6e 73 2c 20 49 20 64 65 63 69 64 65  ctions, I decide
2bb0: 64 20 74 6f 20 72 65 6e 61 6d 65 20 74 68 65 20  d to rename the 
2bc0: 73 71 6c 69 74 65 33 20 43 20 70 72 6f 6a 65 63  sqlite3 C projec
2bd0: 74 20 61 6e 64 20 74 68 65 20 44 4c 4c 20 74 6f  t and the DLL to
2be0: 20 0a 20 20 20 20 20 20 53 51 4c 69 74 65 2e 49   .      SQLite.I
2bf0: 6e 74 65 72 6f 70 2e 44 4c 4c 2e 26 6e 62 73 70  nterop.DLL.&nbsp
2c00: 3b 20 54 68 69 73 20 69 73 20 74 68 65 20 73 61  ; This is the sa
2c10: 6d 65 20 63 6f 72 65 20 73 71 6c 69 74 65 33 20  me core sqlite3 
2c20: 63 6f 64 65 62 61 73 65 20 62 75 74 20 64 65 73  codebase but des
2c30: 69 67 6e 65 64 20 0a 20 20 20 20 20 20 73 70 65  igned .      spe
2c40: 63 69 66 69 63 61 6c 6c 79 20 66 6f 72 20 74 68  cifically for th
2c50: 69 73 20 41 44 4f 2e 4e 45 54 20 70 72 6f 76 69  is ADO.NET provi
2c60: 64 65 72 2e 26 6e 62 73 70 3b 20 54 68 69 73 20  der.&nbsp; This 
2c70: 65 6c 69 6d 69 6e 61 74 65 73 20 61 6e 79 20 70  eliminates any p
2c80: 6f 73 73 69 62 69 6c 69 74 79 20 0a 20 20 20 20  ossibility .    
2c90: 20 20 6f 66 20 73 6f 6d 65 6f 6e 65 20 64 72 6f    of someone dro
2ca0: 70 70 69 6e 67 20 61 6e 6f 74 68 65 72 20 62 75  pping another bu
2cb0: 69 6c 64 20 6f 66 20 73 71 6c 69 74 65 33 2e 64  ild of sqlite3.d
2cc0: 6c 6c 20 69 6e 74 6f 20 74 68 65 20 73 79 73 74  ll into the syst
2cd0: 65 6d 20 61 6e 64 20 72 65 6e 64 65 72 69 6e 67  em and rendering
2ce0: 20 0a 20 20 20 20 20 20 74 68 65 20 70 72 6f 76   .      the prov
2cf0: 69 64 65 72 20 69 6e 6f 70 65 72 61 62 6c 65 2e  ider inoperable.
2d00: 26 6e 62 73 70 3b 20 49 6e 20 74 68 65 20 66 75  &nbsp; In the fu
2d10: 74 75 72 65 20 69 66 20 74 68 65 20 66 6f 6c 6b  ture if the folk
2d20: 73 20 61 74 20 73 71 6c 69 74 65 2e 6f 72 67 20  s at sqlite.org 
2d30: 66 69 6e 61 6c 6c 79 20 0a 20 20 20 20 20 20 69  finally .      i
2d40: 6e 74 72 6f 64 75 63 65 20 61 20 6d 65 74 68 6f  ntroduce a metho
2d50: 64 20 6f 66 20 72 65 74 72 69 65 76 69 6e 67 20  d of retrieving 
2d60: 63 6f 6c 75 6d 6e 20 75 73 61 67 65 20 66 6f 72  column usage for
2d70: 20 61 6e 20 61 72 62 69 74 72 61 72 79 20 70 72   an arbitrary pr
2d80: 65 70 61 72 65 64 20 0a 20 20 20 20 20 20 73 74  epared .      st
2d90: 61 74 65 6d 65 6e 74 2c 20 49 27 6c 6c 20 72 65  atement, I'll re
2da0: 74 6f 6f 6c 20 74 68 69 73 20 6c 69 62 72 61 72  tool this librar
2db0: 79 20 74 6f 20 62 65 20 61 20 6c 69 67 68 74 77  y to be a lightw
2dc0: 65 69 67 68 74 20 66 75 6e 63 74 69 6f 6e 20 63  eight function c
2dd0: 61 6c 6c 20 77 72 61 70 70 65 72 20 0a 20 20 20  all wrapper .   
2de0: 20 20 20 61 72 6f 75 6e 64 20 74 68 65 20 63 6f     around the co
2df0: 72 65 20 62 69 6e 61 72 79 20 64 69 73 74 72 69  re binary distri
2e00: 62 75 74 69 6f 6e 2e 0a 20 20 20 20 20 20 3c 6c  bution..      <l
2e10: 69 3e 0a 20 20 20 20 20 20 41 64 64 65 64 20 5b  i>.      Added [
2e20: 53 75 70 70 72 65 73 73 55 6e 6d 61 6e 61 67 65  SuppressUnmanage
2e30: 64 43 6f 64 65 53 65 63 75 72 69 74 79 5d 20 61  dCodeSecurity] a
2e40: 74 74 72 69 62 75 74 65 20 74 6f 20 74 68 65 20  ttribute to the 
2e50: 55 6e 73 61 66 65 4e 61 74 69 76 65 4d 65 74 68  UnsafeNativeMeth
2e60: 6f 64 73 20 0a 20 20 20 20 20 20 63 6c 61 73 73  ods .      class
2e70: 20 77 68 69 63 68 20 62 72 69 6e 67 73 20 56 53   which brings VS
2e80: 32 30 30 35 20 4e 6f 76 65 6d 62 65 72 20 43 54  2005 November CT
2e90: 50 20 65 78 65 63 75 74 69 6f 6e 20 73 70 65 65  P execution spee
2ea0: 64 73 20 69 6e 6c 69 6e 65 20 77 69 74 68 20 74  ds inline with t
2eb0: 68 65 20 0a 20 20 20 20 20 20 44 65 63 65 6d 62  he .      Decemb
2ec0: 65 72 20 43 54 50 2e 0a 20 20 20 20 20 20 3c 6c  er CTP..      <l
2ed0: 69 3e 0a 20 20 20 20 20 20 20 20 41 64 64 65 64  i>.        Added
2ee0: 20 61 20 3c 62 3e 62 69 6e 3c 2f 62 3e 0a 20 20   a <b>bin</b>.  
2ef0: 20 20 20 20 64 69 72 65 63 74 6f 72 79 20 74 6f      directory to
2f00: 20 74 68 65 20 70 72 6f 6a 65 63 74 20 72 6f 6f   the project roo
2f10: 74 20 77 68 65 72 65 20 70 72 65 2d 63 6f 6d 70  t where pre-comp
2f20: 69 6c 65 64 20 62 69 6e 61 72 69 65 73 20 63 61  iled binaries ca
2f30: 6e 20 62 65 20 66 6f 75 6e 64 2e 0a 20 20 20 20  n be found..    
2f40: 20 20 3c 6c 69 3e 0a 20 20 20 20 20 20 20 20 41    <li>.        A
2f50: 64 64 65 64 20 61 20 3c 62 3e 64 6f 63 3c 2f 62  dded a <b>doc</b
2f60: 3e 0a 20 20 20 20 20 20 64 69 72 65 63 74 6f 72  >.      director
2f70: 79 20 77 68 65 72 65 20 70 72 65 6c 69 6d 69 6e  y where prelimin
2f80: 61 72 79 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f  ary documentatio
2f90: 6e 20 6f 6e 20 74 68 65 20 63 6c 61 73 73 20 6c  n on the class l
2fa0: 69 62 72 61 72 79 20 63 61 6e 20 62 65 20 66 6f  ibrary can be fo
2fb0: 75 6e 64 2e 0a 20 20 20 20 20 20 3c 6c 69 3e 0a  und..      <li>.
2fc0: 20 20 20 20 20 20 20 20 44 6f 63 75 6d 65 6e 74          Document
2fd0: 65 64 20 61 20 6c 6f 74 20 6d 6f 72 65 20 6f 66  ed a lot more of
2fe0: 20 74 68 65 20 63 6c 61 73 73 65 73 20 69 6e 74   the classes int
2ff0: 65 72 6e 61 6c 6c 79 2e 3c 2f 6c 69 3e 0a 20 20  ernally.</li>.  
3000: 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 3c 62 3e 0a    </ul>.    <b>.
3010: 20 20 20 20 20 20 3c 62 72 3e 0a 20 20 20 20 20        <br>.     
3020: 20 31 2e 30 2e 30 34 20 2d 20 46 65 62 20 32 34   1.0.04 - Feb 24
3030: 2c 20 32 30 30 35 3c 2f 62 3e 0a 20 20 20 20 3c  , 2005</b>.    <
3040: 75 6c 3e 0a 20 20 20 20 20 20 3c 6c 69 3e 0a 20  ul>.      <li>. 
3050: 20 20 20 20 20 52 65 6d 6f 76 65 64 20 74 68 65       Removed the
3060: 20 53 51 4c 69 74 65 43 6f 6e 74 65 78 74 20 63   SQLiteContext c
3070: 6c 61 73 73 20 61 6e 64 20 72 65 76 61 6d 70 65  lass and revampe
3080: 64 20 74 68 65 20 77 61 79 20 55 73 65 72 46 75  d the way UserFu
3090: 6e 63 74 69 6f 6e 73 20 77 6f 72 6b 20 74 6f 20  nctions work to 
30a0: 0a 20 20 20 20 20 20 73 69 6d 70 6c 69 66 79 20  .      simplify 
30b0: 74 68 65 20 69 6d 6c 65 6d 65 6e 74 61 74 69 6f  the imlementatio
30c0: 6e 2e 0a 20 20 20 20 20 20 3c 6c 69 3e 0a 20 20  n..      <li>.  
30d0: 20 20 20 20 46 69 78 65 64 20 61 20 63 6f 75 6e      Fixed a coun
30e0: 74 69 6e 67 20 62 75 67 20 69 6e 20 74 68 65 20  ting bug in the 
30f0: 54 65 73 74 43 61 73 65 73 20 63 6c 61 73 73 2c  TestCases class,
3100: 20 73 70 65 63 69 66 69 63 61 6c 6c 79 20 69 6e   specifically in
3110: 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 74 65   the function te
3120: 73 74 73 20 0a 20 20 20 20 20 20 77 68 65 72 65  sts .      where
3130: 20 49 20 77 61 73 6e 27 74 20 72 65 73 65 74 74   I wasn't resett
3140: 69 6e 67 20 74 68 65 20 63 6f 75 6e 74 65 72 20  ing the counter 
3150: 61 6e 64 20 69 74 20 77 61 73 20 63 6f 6e 73 65  and it was conse
3160: 71 75 65 6e 74 6c 79 20 72 65 70 6f 72 74 69 6e  quently reportin
3170: 67 20 0a 20 20 20 20 20 20 69 6e 74 72 69 6e 73  g .      intrins
3180: 69 63 20 61 6e 64 20 72 61 77 20 73 65 6c 65 63  ic and raw selec
3190: 74 20 63 61 6c 6c 73 20 61 73 20 62 65 69 6e 67  t calls as being
31a0: 20 6d 75 63 68 20 6d 75 63 68 20 66 61 73 74 65   much much faste
31b0: 72 20 74 68 61 6e 20 74 68 65 79 20 61 63 74 75  r than they actu
31c0: 61 6c 6c 79 20 0a 20 20 20 20 20 20 77 65 72 65  ally .      were
31d0: 2e 26 6e 62 73 70 3b 20 54 68 65 20 6e 75 6d 62  .&nbsp; The numb
31e0: 65 72 73 20 61 72 65 20 6e 6f 77 20 6d 75 63 68  ers are now much
31f0: 20 63 6c 6f 73 65 72 20 74 6f 20 77 68 61 74 20   closer to what 
3200: 49 20 65 78 70 65 63 74 65 64 20 66 6f 72 20 70  I expected for p
3210: 65 72 66 6f 72 6d 61 6e 63 65 2c 20 0a 20 20 20  erformance, .   
3220: 20 20 20 77 69 74 68 20 2e 4e 45 54 20 75 73 65     with .NET use
3230: 72 2d 66 75 6e 63 74 69 6f 6e 73 20 73 74 69 6c  r-functions stil
3240: 6c 20 62 65 69 6e 67 20 74 68 65 20 73 6c 6f 77  l being the slow
3250: 65 73 74 2c 20 62 75 74 20 6f 6e 6c 79 20 62 79  est, but only by
3260: 20 61 20 73 6d 61 6c 6c 20 6d 61 72 67 69 6e 2e   a small margin.
3270: 0a 20 20 20 20 20 20 3c 6c 69 3e 0a 20 20 20 20  .      <li>.    
3280: 20 20 53 6d 61 6c 6c 20 70 65 72 66 6f 72 6d 61    Small performa
3290: 6e 63 65 20 74 77 65 61 6b 73 20 74 6f 20 53 51  nce tweaks to SQ
32a0: 4c 69 74 65 44 61 74 61 52 65 61 64 65 72 2e 0a  LiteDataReader..
32b0: 20 20 20 20 20 20 3c 6c 69 3e 0a 20 20 20 20 20        <li>.     
32c0: 20 41 64 64 65 64 20 50 61 67 65 53 69 7a 65 20   Added PageSize 
32d0: 74 6f 20 74 68 65 20 53 51 4c 69 74 65 43 6f 6e  to the SQLiteCon
32e0: 6e 65 63 74 69 6f 6e 53 74 72 69 6e 67 42 75 69  nectionStringBui
32f0: 6c 64 65 72 20 61 6e 64 20 73 75 62 73 65 71 75  lder and subsequ
3300: 65 6e 74 6c 79 20 74 6f 20 74 68 65 20 0a 20 20  ently to the .  
3310: 20 20 20 20 53 51 4c 69 74 65 43 6f 6e 6e 65 63      SQLiteConnec
3320: 74 69 6f 6e 0a 20 20 20 20 20 20 3c 6c 69 3e 0a  tion.      <li>.
3330: 20 20 20 20 20 20 20 20 41 64 64 65 64 20 61 20          Added a 
3340: 50 52 41 47 4d 41 20 65 6e 63 6f 64 69 6e 67 3d  PRAGMA encoding=
3350: 58 58 58 20 65 78 65 63 75 74 69 6f 6e 20 73 74  XXX execution st
3360: 61 74 65 6d 65 6e 74 20 74 6f 20 74 68 65 20 53  atement to the S
3370: 51 4c 69 74 65 43 6f 6e 6e 65 63 74 69 6f 6e 20  QLiteConnection 
3380: 61 66 74 65 72 20 0a 20 20 20 20 20 20 20 20 6f  after .        o
3390: 70 65 6e 69 6e 67 20 61 20 63 6f 6e 6e 65 63 74  pening a connect
33a0: 69 6f 6e 2e 3c 2f 6c 69 3e 0a 20 20 20 20 3c 2f  ion.</li>.    </
33b0: 75 6c 3e 0a 20 20 20 20 3c 62 3e 31 2e 30 2e 30  ul>.    <b>1.0.0
33c0: 33 20 2d 20 46 65 62 20 32 33 2c 20 32 30 30 35  3 - Feb 23, 2005
33d0: 3c 2f 62 3e 0a 20 20 20 20 3c 75 6c 3e 0a 20 20  </b>.    <ul>.  
33e0: 20 20 20 20 3c 6c 69 3e 0a 20 20 20 20 20 20 46      <li>.      F
33f0: 69 78 65 64 20 75 70 20 53 51 4c 69 74 65 43 6f  ixed up SQLiteCo
3400: 6d 6d 61 6e 64 42 75 69 6c 64 65 72 20 74 6f 20  mmandBuilder to 
3410: 63 6f 72 72 65 63 74 20 69 6d 70 6c 65 6d 65 6e  correct implemen
3420: 74 61 74 69 6f 6e 20 65 72 72 6f 72 73 2c 20 77  tation errors, w
3430: 68 69 63 68 20 72 65 73 75 6c 74 65 64 20 0a 20  hich resulted . 
3440: 20 20 20 20 20 69 6e 20 61 6e 20 65 6e 6f 72 6d       in an enorm
3450: 6f 75 73 20 70 65 72 66 6f 72 6d 61 6e 63 65 20  ous performance 
3460: 62 6f 6f 73 74 20 69 6e 20 74 68 65 20 49 6e 73  boost in the Ins
3470: 65 72 74 4d 61 6e 79 20 74 65 73 74 2e 26 6e 62  ertMany test.&nb
3480: 73 70 3b 26 6e 62 73 70 3b 20 31 30 2c 30 30 30  sp;&nbsp; 10,000
3490: 20 72 6f 77 20 0a 20 20 20 20 20 20 69 6e 73 65   row .      inse
34a0: 72 74 20 74 68 61 74 20 65 78 65 63 75 74 65 64  rt that executed
34b0: 20 69 6e 20 31 35 30 30 6d 73 20 6e 6f 77 20 65   in 1500ms now e
34c0: 78 65 63 75 74 65 73 20 69 6e 20 35 30 30 6d 73  xecutes in 500ms
34d0: 2e 0a 20 20 20 20 20 20 3c 6c 69 3e 0a 20 20 20  ..      <li>.   
34e0: 20 20 20 46 69 78 65 64 20 73 65 76 65 72 61 6c     Fixed several
34f0: 20 65 72 72 6f 72 73 20 69 6e 20 74 68 65 20 53   errors in the S
3500: 51 4c 69 74 65 33 5f 55 54 46 31 36 20 63 6c 61  QLite3_UTF16 cla
3510: 73 73 2e 26 6e 62 73 70 3b 20 54 6f 53 74 72 69  ss.&nbsp; ToStri
3520: 6e 67 28 29 20 77 61 73 20 77 6f 72 6b 69 6e 67  ng() was working
3530: 20 0a 20 20 20 20 20 20 69 6e 63 6f 72 72 65 63   .      incorrec
3540: 74 6c 79 20 61 6e 64 20 74 68 65 20 4f 70 65 6e  tly and the Open
3550: 28 29 20 6d 65 74 68 6f 64 20 66 61 69 6c 65 64  () method failed
3560: 20 74 6f 20 72 65 67 69 73 74 65 72 20 75 73 65   to register use
3570: 72 20 64 65 66 69 6e 65 64 20 66 75 6e 63 74 69  r defined functi
3580: 6f 6e 73 20 61 6e 64 20 0a 20 20 20 20 20 20 63  ons and .      c
3590: 6f 6c 6c 61 74 69 6f 6e 73 2e 0a 20 20 20 20 20  ollations..     
35a0: 20 3c 6c 69 3e 0a 20 20 20 20 20 20 46 69 78 65   <li>.      Fixe
35b0: 64 20 61 20 62 75 67 20 69 6e 20 53 51 4c 69 74  d a bug in SQLit
35c0: 65 43 6f 6d 6d 61 6e 64 2e 43 6c 65 61 72 43 6f  eCommand.ClearCo
35d0: 6d 6d 61 6e 64 73 28 29 20 77 68 65 72 65 62 79  mmands() whereby
35e0: 20 6f 6e 6c 79 20 74 68 65 20 66 69 72 73 74 20   only the first 
35f0: 73 74 61 74 65 6d 65 6e 74 20 0a 20 20 20 20 20  statement .     
3600: 20 77 61 73 20 62 65 69 6e 67 20 70 72 6f 70 65   was being prope
3610: 72 6c 79 20 63 6c 65 61 6e 65 64 20 75 70 2e 0a  rly cleaned up..
3620: 20 20 20 20 20 20 3c 6c 69 3e 0a 20 20 20 20 20        <li>.     
3630: 20 46 69 78 65 64 20 61 20 62 75 67 20 69 6e 20   Fixed a bug in 
3640: 53 51 4c 69 74 65 44 61 74 61 52 65 61 64 65 72  SQLiteDataReader
3650: 20 77 68 65 72 65 62 79 20 63 61 6c 6c 69 6e 67   whereby calling
3660: 20 4e 65 78 74 52 65 73 75 6c 74 28 29 20 77 6f   NextResult() wo
3670: 75 6c 64 20 6e 6f 74 20 70 72 6f 70 65 72 6c 79  uld not properly
3680: 20 0a 20 20 20 20 20 20 72 65 73 65 74 20 74 68   .      reset th
3690: 65 20 70 72 65 76 69 6f 75 73 6c 79 2d 65 78 65  e previously-exe
36a0: 63 75 74 65 64 20 63 6f 6d 6d 61 6e 64 20 69 6e  cuted command in
36b0: 20 74 68 65 20 73 65 71 75 65 6e 63 65 2e 0a 20   the sequence.. 
36c0: 20 20 20 20 20 3c 6c 69 3e 0a 20 20 20 20 20 20       <li>.      
36d0: 20 20 41 64 64 65 64 20 61 6e 20 49 6e 73 65 72    Added an Inser
36e0: 74 4d 61 6e 79 57 69 74 68 49 64 65 6e 74 69 74  tManyWithIdentit
36f0: 79 46 65 74 63 68 20 74 65 73 74 2c 20 77 68 69  yFetch test, whi
3700: 63 68 20 61 70 70 65 6e 64 73 20 61 20 73 65 6c  ch appends a sel
3710: 65 63 74 20 63 6c 61 75 73 65 20 74 6f 20 0a 20  ect clause to . 
3720: 20 20 20 20 20 20 20 70 6f 70 75 6c 61 74 65 20         populate 
3730: 74 68 65 20 49 44 20 6f 66 20 74 68 65 20 6c 61  the ID of the la
3740: 73 74 20 69 6e 73 65 72 74 65 64 20 72 6f 77 20  st inserted row 
3750: 69 6e 74 6f 20 74 68 65 20 49 6e 73 65 72 74 43  into the InsertC
3760: 6f 6d 6d 61 6e 64 2c 20 64 65 6d 6f 6e 73 74 72  ommand, demonstr
3770: 61 74 69 6e 67 20 0a 20 20 20 20 20 20 20 20 41  ating .        A
3780: 44 4f 2e 4e 45 54 27 73 20 61 62 69 6c 69 74 79  DO.NET's ability
3790: 20 74 6f 20 61 75 74 6f 2d 66 65 74 63 68 20 69   to auto-fetch i
37a0: 64 65 6e 74 69 74 79 20 63 6f 6c 75 6d 6e 73 20  dentity columns 
37b0: 6f 6e 20 69 6e 73 65 72 74 2e 3c 2f 6c 69 3e 0a  on insert.</li>.
37c0: 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 3c 70      </ul>.    <p
37d0: 3e 0a 20 20 20 20 20 20 3c 62 3e 31 2e 30 2e 30  >.      <b>1.0.0
37e0: 32 20 2d 20 46 65 62 20 32 31 2c 20 32 30 30 35  2 - Feb 21, 2005
37f0: 3c 2f 62 3e 3c 2f 70 3e 0a 20 20 20 20 3c 75 6c  </b></p>.    <ul
3800: 3e 0a 20 20 20 20 20 20 3c 6c 69 3e 0a 20 20 20  >.      <li>.   
3810: 20 20 20 54 77 65 61 6b 73 20 74 6f 20 74 68 65     Tweaks to the
3820: 20 78 78 78 5f 69 6e 74 65 72 6f 70 20 66 75 6e   xxx_interop fun
3830: 63 74 69 6f 6e 73 20 74 68 61 74 20 72 65 74 75  ctions that retu
3840: 72 6e 20 63 68 61 72 20 2a 27 73 2c 20 73 6f 20  rn char *'s, so 
3850: 74 68 65 79 20 61 6c 73 6f 20 72 65 74 75 72 6e  they also return
3860: 20 0a 20 20 20 20 20 20 74 68 65 20 6c 65 6e 67   .      the leng
3870: 74 68 2e 26 6e 62 73 70 3b 20 53 61 76 65 73 20  th.&nbsp; Saves 
3880: 61 6e 20 69 6e 74 65 72 6f 70 20 63 61 6c 6c 20  an interop call 
3890: 74 6f 20 67 65 74 20 74 68 65 20 55 54 46 2d 38  to get the UTF-8
38a0: 20 73 74 72 69 6e 67 20 6c 65 6e 67 74 68 20 64   string length d
38b0: 75 72 69 6e 67 20 0a 20 20 20 20 20 20 63 6f 6e  uring .      con
38c0: 76 65 72 73 69 6f 6e 20 74 6f 20 61 20 2e 4e 45  version to a .NE
38d0: 54 20 73 74 72 69 6e 67 2e 0a 20 20 20 20 20 20  T string..      
38e0: 3c 6c 69 3e 0a 20 20 20 20 20 20 52 65 77 6f 72  <li>.      Rewor
38f0: 6b 65 64 20 74 68 65 20 77 68 6f 6c 65 20 69 6e  ked the whole in
3900: 74 65 72 6f 70 2e 63 20 74 68 69 6e 67 20 69 6e  terop.c thing in
3910: 74 6f 20 69 6e 74 65 72 6f 70 2e 68 20 61 6e 64  to interop.h and
3920: 20 72 65 64 75 63 65 64 20 74 68 65 20 63 6f 64   reduced the cod
3930: 65 20 72 65 71 75 69 72 65 64 20 0a 20 20 20 20  e required .    
3940: 20 20 74 6f 20 6d 65 72 67 65 20 74 68 65 20 6d    to merge the m
3950: 61 69 6e 20 73 71 6c 69 74 65 33 20 63 6f 64 65  ain sqlite3 code
3960: 62 61 73 65 2e 0a 20 20 20 20 20 20 3c 6c 69 3e  base..      <li>
3970: 0a 20 20 20 20 20 20 20 20 41 64 64 65 64 20 73  .        Added s
3980: 75 70 70 6f 72 74 20 66 6f 72 20 75 73 65 72 2d  upport for user-
3990: 64 65 66 69 6e 65 64 20 63 6f 6c 6c 61 74 69 6f  defined collatio
39a0: 6e 73 2e 3c 2f 6c 69 3e 0a 20 20 20 20 3c 2f 75  ns.</li>.    </u
39b0: 6c 3e 0a 20 20 3c 2f 62 6f 64 79 3e 0a 3c 2f 68  l>.  </body>.</h
39c0: 74 6d 6c 3e 0a                                   tml>.