System.Data.SQLite
Hex Artifact Content
Not logged in

Artifact 750b5b3b561b32b8f4ed30d6ac53c0608619ff38:


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: 32 34 2e 33 20 28 62 65 74 61 29 20 2d 20 4a 61  24.3 (beta) - Ja
00c0: 6e 20 31 30 2c 20 32 30 30 36 3c 62 72 3e 0a 20  n 10, 2006<br>. 
00d0: 20 20 20 49 6e 74 65 72 6f 70 20 75 73 69 6e 67     Interop using
00e0: 20 53 51 4c 69 74 65 20 43 56 53 20 48 45 41 44   SQLite CVS HEAD
00f0: 20 28 62 65 74 61 29 3c 62 72 3e 0a 20 20 20 20   (beta)<br>.    
0100: 57 72 69 74 74 65 6e 20 62 79 20 52 6f 62 65 72  Written by Rober
0110: 74 20 53 69 6d 70 73 6f 6e 20 28 3c 61 20 68 72  t Simpson (<a hr
0120: 65 66 3d 22 6d 61 69 6c 74 6f 3a 72 6f 62 65 72  ef="mailto:rober
0130: 74 40 62 6c 61 63 6b 63 61 73 74 6c 65 73 6f 66  t@blackcastlesof
0140: 74 2e 63 6f 6d 22 3e 72 6f 62 65 72 74 40 62 6c  t.com">robert@bl
0150: 61 63 6b 63 61 73 74 6c 65 73 6f 66 74 2e 63 6f  ackcastlesoft.co
0160: 6d 3c 2f 61 3e 29 3c 62 72 3e 0a 20 20 20 20 52  m</a>)<br>.    R
0170: 65 6c 65 61 73 65 64 20 74 6f 20 74 68 65 20 70  eleased to the p
0180: 75 62 6c 69 63 20 64 6f 6d 61 69 6e 2c 20 75 73  ublic domain, us
0190: 65 20 61 74 20 79 6f 75 72 20 6f 77 6e 20 72 69  e at your own ri
01a0: 73 6b 21 3c 62 72 3e 0a 20 20 20 20 3c 62 72 3e  sk!<br>.    <br>
01b0: 0a 20 20 20 20 54 68 65 20 6c 61 74 65 73 74 20  .    The latest 
01c0: 76 65 72 73 69 6f 6e 20 63 61 6e 20 62 65 20 64  version can be d
01d0: 6f 77 6e 6c 6f 61 64 65 64 20 3c 61 20 68 72 65  ownloaded <a hre
01e0: 66 3d 22 68 74 74 70 3a 2f 2f 73 6f 75 72 63 65  f="http://source
01f0: 66 6f 72 67 65 2e 6e 65 74 2f 70 72 6f 6a 65 63  forge.net/projec
0200: 74 73 2f 73 71 6c 69 74 65 2d 64 6f 74 6e 65 74  ts/sqlite-dotnet
0210: 32 22 3e 0a 20 20 20 20 20 20 68 65 72 65 3c 2f  2">.      here</
0220: 61 3e 0a 20 20 20 20 3c 62 72 3e 0a 20 20 20 20  a>.    <br>.    
0230: 3c 62 72 3e 0a 20 20 20 20 3c 62 3e 3c 2f 62 3e  <br>.    <b></b>
0240: 0a 20 20 20 20 3c 68 32 3e 0a 20 20 20 20 20 20  .    <h2>.      
0250: 3c 62 3e 46 65 61 74 75 72 65 73 3a 3c 2f 62 3e  <b>Features:</b>
0260: 3c 62 72 3e 0a 20 20 20 20 3c 2f 68 32 3e 0a 20  <br>.    </h2>. 
0270: 20 20 20 3c 55 4c 3e 0a 20 20 20 20 20 20 3c 4c     <UL>.      <L
0280: 49 3e 0a 20 20 20 20 20 20 53 75 70 70 6f 72 74  I>.      Support
0290: 73 26 6e 62 73 70 3b 74 68 65 20 46 75 6c 6c 20  s&nbsp;the Full 
02a0: 61 6e 64 20 43 6f 6d 70 61 63 74 20 2e 4e 45 54  and Compact .NET
02b0: 20 46 72 61 6d 65 77 6f 72 6b 2e 0a 20 20 20 20   Framework..    
02c0: 20 20 3c 4c 49 3e 0a 20 20 20 20 20 20 4f 6e 20    <LI>.      On 
02d0: 74 68 65 20 43 6f 6d 70 61 63 74 20 46 72 61 6d  the Compact Fram
02e0: 65 77 6f 72 6b 2c 20 69 74 20 69 73 20 66 61 73  ework, it is fas
02f0: 74 65 72 20 74 68 61 6e 20 74 68 65 20 6e 65 77  ter than the new
0300: 6c 79 2d 69 6e 74 72 6f 64 75 63 65 64 20 53 71  ly-introduced Sq
0310: 6c 20 53 65 72 76 65 72 20 0a 20 20 20 20 20 20  l Server .      
0320: 4d 6f 62 69 6c 65 2c 20 6f 66 74 65 6e 20 6d 6f  Mobile, often mo
0330: 72 65 20 74 68 61 6e 20 31 30 78 20 66 61 73 74  re than 10x fast
0340: 65 72 20 61 74 20 69 6e 73 65 72 74 73 2f 75 70  er at inserts/up
0350: 64 61 74 65 73 2e 26 6e 62 73 70 3b 20 53 51 4c  dates.&nbsp; SQL
0360: 69 74 65 20 64 61 74 61 62 61 73 65 73 20 0a 20  ite databases . 
0370: 20 20 20 20 20 61 72 65 20 61 6c 73 6f 20 61 20       are also a 
0380: 66 72 61 63 74 69 6f 6e 20 6f 66 20 74 68 65 20  fraction of the 
0390: 73 69 7a 65 20 6f 66 20 53 71 6c 20 4d 6f 62 69  size of Sql Mobi
03a0: 6c 65 20 64 61 74 61 62 61 73 65 73 2e 0a 20 20  le databases..  
03b0: 20 20 20 20 3c 4c 49 3e 0a 20 20 20 20 20 20 46      <LI>.      F
03c0: 75 6c 6c 20 56 69 73 75 61 6c 20 53 74 75 64 69  ull Visual Studi
03d0: 6f 20 32 30 30 35 20 44 65 73 69 67 6e 2d 54 69  o 2005 Design-Ti
03e0: 6d 65 20 53 75 70 70 6f 72 74 2e 26 6e 62 73 70  me Support.&nbsp
03f0: 3b 20 59 6f 75 20 63 61 6e 20 61 64 64 20 61 20  ; You can add a 
0400: 53 51 4c 69 74 65 20 0a 20 20 20 20 20 20 64 61  SQLite .      da
0410: 74 61 62 61 73 65 20 74 6f 20 74 68 65 20 53 65  tabase to the Se
0420: 72 76 65 72 73 20 6c 69 73 74 2c 20 64 65 73 69  rvers list, desi
0430: 67 6e 20 71 75 65 72 69 65 73 20 77 69 74 68 20  gn queries with 
0440: 74 68 65 20 51 75 65 72 79 20 44 65 73 69 67 6e  the Query Design
0450: 65 72 2c 20 0a 20 20 20 20 20 20 64 72 61 67 2d  er, .      drag-
0460: 61 6e 64 2d 64 72 6f 70 20 74 61 62 6c 65 73 20  and-drop tables 
0470: 6f 6e 74 6f 20 61 20 54 79 70 65 64 20 44 61 74  onto a Typed Dat
0480: 61 53 65 74 2c 20 65 74 63 2e 0a 20 20 20 20 20  aSet, etc..     
0490: 20 3c 4c 49 3e 0a 20 20 20 20 20 20 53 69 6e 67   <LI>.      Sing
04a0: 6c 65 20 66 69 6c 65 20 72 65 64 69 73 74 72 69  le file redistri
04b0: 62 75 74 61 62 6c 65 20 66 6f 72 20 74 68 65 20  butable for the 
04c0: 66 75 6c 6c 20 2e 6e 65 74 20 66 72 61 6d 65 77  full .net framew
04d0: 6f 72 6b 20 28 43 6f 6d 70 61 63 74 20 46 72 61  ork (Compact Fra
04e0: 6d 65 77 6f 72 6b 20 0a 20 20 20 20 20 20 72 65  mework .      re
04f0: 71 75 69 72 65 73 20 32 20 62 69 6e 61 72 69 65  quires 2 binarie
0500: 73 29 2e 26 6e 62 73 70 3b 20 54 68 65 20 63 6f  s).&nbsp; The co
0510: 72 65 20 73 71 6c 69 74 65 33 20 63 6f 64 65 62  re sqlite3 codeb
0520: 61 73 65 20 61 6e 64 20 74 68 65 20 41 44 4f 2e  ase and the ADO.
0530: 4e 45 54 20 77 72 61 70 70 65 72 20 0a 20 20 20  NET wrapper .   
0540: 20 20 20 61 72 65 20 63 6f 6d 62 69 6e 65 64 20     are combined 
0550: 69 6e 74 6f 20 6f 6e 65 20 6d 75 6c 74 69 2d 6d  into one multi-m
0560: 6f 64 75 6c 65 20 61 73 73 65 6d 62 6c 79 2e 0a  odule assembly..
0570: 20 20 20 20 20 20 3c 4c 49 3e 0a 20 20 20 20 20        <LI>.     
0580: 20 4e 61 74 69 76 65 20 36 34 2d 62 69 74 20 6d   Native 64-bit m
0590: 75 6c 74 69 2d 6d 6f 64 75 6c 65 20 61 73 73 65  ulti-module asse
05a0: 6d 62 6c 69 65 73 20 66 6f 72 20 49 74 61 6e 69  mblies for Itani
05b0: 75 6d 20 61 6e 64 20 58 36 34 20 70 72 6f 63 65  um and X64 proce
05c0: 73 73 6f 72 73 2e 0a 20 20 20 20 20 20 3c 4c 49  ssors..      <LI
05d0: 3e 0a 20 20 20 20 20 20 44 62 50 72 6f 76 69 64  >.      DbProvid
05e0: 65 72 46 61 63 74 6f 72 79 20 73 75 70 70 6f 72  erFactory suppor
05f0: 74 2e 0a 20 20 20 20 20 20 3c 4c 49 3e 0a 20 20  t..      <LI>.  
0600: 20 20 20 20 20 20 46 75 6c 6c 20 73 75 70 70 6f        Full suppo
0610: 72 74 20 66 6f 72 20 41 54 54 41 43 48 27 65 64  rt for ATTACH'ed
0620: 20 64 61 74 61 62 61 73 65 73 2e 26 6e 62 73 70   databases.&nbsp
0630: 3b 20 45 78 70 6f 73 65 64 20 61 73 20 3c 49 3e  ; Exposed as <I>
0640: 43 61 74 61 6c 6f 67 73 3c 2f 49 3e 0a 20 20 20  Catalogs</I>.   
0650: 20 20 20 69 6e 20 74 68 65 20 73 63 68 65 6d 61     in the schema
0660: 2e 26 6e 62 73 70 3b 20 57 68 65 6e 20 63 6c 6f  .&nbsp; When clo
0670: 6e 69 6e 67 20 61 20 63 6f 6e 6e 65 63 74 69 6f  ning a connectio
0680: 6e 2c 20 61 6c 6c 20 61 74 74 61 63 68 65 64 20  n, all attached 
0690: 64 61 74 61 62 61 73 65 73 20 61 72 65 20 0a 20  databases are . 
06a0: 20 20 20 20 20 61 75 74 6f 6d 61 74 69 63 61 6c       automatical
06b0: 6c 79 20 72 65 2d 61 74 74 61 63 68 65 64 20 74  ly re-attached t
06c0: 6f 20 74 68 65 20 6e 65 77 20 63 6f 6e 6e 65 63  o the new connec
06d0: 74 69 6f 6e 2e 0a 20 20 20 20 20 20 3c 4c 49 3e  tion..      <LI>
06e0: 0a 20 20 20 20 20 20 20 20 44 62 43 6f 6e 6e 65  .        DbConne
06f0: 63 74 69 6f 6e 2e 47 65 74 53 63 68 65 6d 61 28  ction.GetSchema(
0700: 2e 2e 2e 29 20 73 75 70 70 6f 72 74 20 69 6e 63  ...) support inc
0710: 6c 75 64 65 73 20 74 68 65 20 3c 49 3e 4d 65 74  ludes the <I>Met
0720: 61 44 61 74 61 43 6f 6c 6c 65 63 74 69 6f 6e 73  aDataCollections
0730: 3c 2f 49 3e 2c 20 3c 49 3e 44 61 74 61 53 6f 75  </I>, <I>DataSou
0740: 72 63 65 49 6e 66 6f 72 6d 61 74 69 6f 6e 3c 2f  rceInformation</
0750: 49 3e 2c 0a 20 20 20 20 20 20 20 20 3c 49 3e 43  I>,.        <I>C
0760: 6f 6c 75 6d 6e 73 3c 2f 49 3e 2c 20 3c 49 3e 54  olumns</I>, <I>T
0770: 61 62 6c 65 73 3c 2f 49 3e 2c 20 3c 49 3e 56 69  ables</I>, <I>Vi
0780: 65 77 73 2c 20 56 69 65 77 43 6f 6c 75 6d 6e 73  ews, ViewColumns
0790: 2c 20 3c 2f 49 3e 3c 49 3e 43 61 74 61 6c 6f 67  , </I><I>Catalog
07a0: 73 2c 20 3c 2f 49 3e 3c 49 3e 49 6e 64 65 78 65  s, </I><I>Indexe
07b0: 73 2c 20 0a 20 20 20 20 20 20 20 20 20 20 49 6e  s, .          In
07c0: 64 65 78 43 6f 6c 75 6d 6e 73 20 3c 2f 49 3e 61  dexColumns </I>a
07d0: 6e 64 20 3c 45 4d 3e 46 6f 72 65 69 67 6e 4b 65  nd <EM>ForeignKe
07e0: 79 73 3c 2f 45 4d 3e 0a 20 20 20 20 20 20 6b 65  ys</EM>.      ke
07f0: 79 77 6f 72 64 73 2e 0a 20 20 20 20 20 20 3c 4c  ywords..      <L
0800: 49 3e 0a 20 20 20 20 20 20 45 6e 68 61 6e 63 65  I>.      Enhance
0810: 64 20 44 62 44 61 74 61 52 65 61 64 65 72 2e 47  d DbDataReader.G
0820: 65 74 53 63 68 65 6d 61 54 61 62 6c 65 28 29 20  etSchemaTable() 
0830: 66 75 6e 63 74 69 6f 6e 61 6c 69 74 79 20 72 65  functionality re
0840: 74 75 72 6e 73 20 63 61 74 61 6c 6f 67 2c 20 6e  turns catalog, n
0850: 61 6d 65 73 70 61 63 65 20 0a 20 20 20 20 20 20  amespace .      
0860: 61 6e 64 20 64 65 74 61 69 6c 65 64 20 73 63 68  and detailed sch
0870: 65 6d 61 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20  ema information 
0880: 65 76 65 6e 20 66 6f 72 20 63 6f 6d 70 6c 65 78  even for complex
0890: 20 71 75 65 72 69 65 73 2e 0a 20 20 20 20 20 20   queries..      
08a0: 3c 4c 49 3e 0a 20 20 20 20 20 20 4e 61 6d 65 64  <LI>.      Named
08b0: 20 61 6e 64 20 75 6e 6e 61 6d 65 64 20 70 61 72   and unnamed par
08c0: 61 6d 65 74 65 72 73 2e 0a 20 20 20 20 20 20 3c  ameters..      <
08d0: 4c 49 3e 0a 20 20 20 20 20 20 46 75 6c 6c 20 55  LI>.      Full U
08e0: 54 46 2d 38 20 61 6e 64 20 55 54 46 2d 31 36 20  TF-8 and UTF-16 
08f0: 73 75 70 70 6f 72 74 2c 20 65 61 63 68 20 77 69  support, each wi
0900: 74 68 20 6f 70 74 69 6d 69 7a 65 64 20 70 69 70  th optimized pip
0910: 65 6c 69 6e 65 73 20 69 6e 74 6f 20 74 68 65 20  elines into the 
0920: 6e 61 74 69 76 65 20 0a 20 20 20 20 20 20 64 61  native .      da
0930: 74 61 62 61 73 65 20 63 6f 72 65 2e 0a 20 20 20  tabase core..   
0940: 20 20 20 3c 4c 49 3e 0a 20 20 20 20 20 20 4d 75     <LI>.      Mu
0950: 6c 74 69 70 6c 65 20 73 69 6d 75 6c 74 61 6e 65  ltiple simultane
0960: 6f 75 73 20 44 61 74 61 52 65 61 64 65 72 73 20  ous DataReaders 
0970: 28 6f 6e 65 20 44 61 74 61 52 65 61 64 65 72 20  (one DataReader 
0980: 70 65 72 20 43 6f 6d 6d 61 6e 64 20 68 6f 77 65  per Command howe
0990: 76 65 72 29 2e 0a 20 20 20 20 20 20 3c 4c 49 3e  ver)..      <LI>
09a0: 0a 20 20 20 20 20 20 46 75 6c 6c 20 73 75 70 70  .      Full supp
09b0: 6f 72 74 20 66 6f 72 20 75 73 65 72 2d 64 65 66  ort for user-def
09c0: 69 6e 65 64 20 73 63 61 6c 61 72 20 61 6e 64 20  ined scalar and 
09d0: 61 67 67 72 65 67 61 74 65 20 66 75 6e 63 74 69  aggregate functi
09e0: 6f 6e 73 2c 20 65 6e 63 61 70 73 75 6c 61 74 65  ons, encapsulate
09f0: 64 20 69 6e 74 6f 20 0a 20 20 20 20 20 20 61 6e  d into .      an
0a00: 20 65 61 73 79 2d 74 6f 2d 75 73 65 20 62 61 73   easy-to-use bas
0a10: 65 20 63 6c 61 73 73 20 69 6e 20 77 68 69 63 68  e class in which
0a20: 20 6f 6e 6c 79 20 61 20 63 6f 75 70 6c 65 20 6f   only a couple o
0a30: 66 20 6f 76 65 72 72 69 64 65 73 20 61 72 65 20  f overrides are 
0a40: 6e 65 63 65 73 73 61 72 79 20 74 6f 20 0a 20 20  necessary to .  
0a50: 20 20 20 20 69 6d 70 6c 65 6d 65 6e 74 20 6e 65      implement ne
0a60: 77 20 53 51 4c 20 66 75 6e 63 74 69 6f 6e 73 2e  w SQL functions.
0a70: 0a 20 20 20 20 20 20 3c 4c 49 3e 0a 20 20 20 20  .      <LI>.    
0a80: 20 20 46 75 6c 6c 20 73 75 70 70 6f 72 74 20 66    Full support f
0a90: 6f 72 20 75 73 65 72 2d 64 65 66 69 6e 65 64 20  or user-defined 
0aa0: 63 6f 6c 6c 61 74 69 6e 67 20 73 65 71 75 65 6e  collating sequen
0ab0: 63 65 73 2c 20 65 76 65 72 79 20 62 69 74 20 61  ces, every bit a
0ac0: 73 20 73 69 6d 70 6c 65 20 74 6f 20 0a 20 20 20  s simple to .   
0ad0: 20 20 20 69 6d 70 6c 65 6d 65 6e 74 20 61 73 20     implement as 
0ae0: 75 73 65 72 2d 64 65 66 69 6e 65 64 20 66 75 6e  user-defined fun
0af0: 63 74 69 6f 6e 73 20 61 6e 64 20 75 73 65 73 20  ctions and uses 
0b00: 74 68 65 20 73 61 6d 65 20 62 61 73 65 20 63 6c  the same base cl
0b10: 61 73 73 2e 0a 20 20 20 20 20 20 3c 4c 49 3e 0a  ass..      <LI>.
0b20: 20 20 20 20 20 20 43 72 65 61 74 65 20 61 6e 64        Create and
0b30: 20 65 6e 63 72 79 70 74 20 64 61 74 61 62 61 73   encrypt databas
0b40: 65 73 20 75 73 69 6e 67 20 57 69 6e 32 4b 2b 20  es using Win2K+ 
0b50: 45 6e 63 72 79 70 74 69 6e 67 20 46 69 6c 65 20  Encrypting File 
0b60: 53 79 73 74 65 6d 20 28 45 46 53 29 2e 20 0a 20  System (EFS). . 
0b70: 20 20 20 20 20 53 75 70 70 6f 72 74 73 20 63 72       Supports cr
0b80: 65 61 74 69 6e 67 20 4e 54 46 53 20 63 6f 6d 70  eating NTFS comp
0b90: 72 65 73 73 65 64 20 64 61 74 61 62 61 73 65 20  ressed database 
0ba0: 66 69 6c 65 73 2e 0a 20 20 20 20 20 20 3c 4c 49  files..      <LI
0bb0: 3e 0a 20 20 20 20 20 20 20 20 46 75 6c 6c 20 73  >.        Full s
0bc0: 6f 75 72 63 65 20 66 6f 72 20 74 68 65 20 65 6e  ource for the en
0bd0: 74 69 72 65 20 65 6e 67 69 6e 65 20 61 6e 64 20  tire engine and 
0be0: 77 72 61 70 70 65 72 2e 26 6e 62 73 70 3b 20 4e  wrapper.&nbsp; N
0bf0: 6f 20 63 6f 70 79 72 69 67 68 74 73 2e 26 6e 62  o copyrights.&nb
0c00: 73 70 3b 20 0a 20 20 20 20 20 20 20 20 50 75 62  sp; .        Pub
0c10: 6c 69 63 20 44 6f 6d 61 69 6e 2e 26 6e 62 73 70  lic Domain.&nbsp
0c20: 3b 20 31 30 30 25 20 66 72 65 65 2e 26 6e 62 73  ; 100% free.&nbs
0c30: 70 3b 20 49 66 20 79 6f 75 20 77 61 6e 74 20 74  p; If you want t
0c40: 6f 20 6b 6e 6f 77 20 69 66 20 79 6f 75 20 63 61  o know if you ca
0c50: 6e 20 75 73 65 20 69 74 20 69 6e 20 0a 20 20 20  n use it in .   
0c60: 20 20 20 20 20 79 6f 75 72 20 63 6f 6d 6d 65 72       your commer
0c70: 63 69 61 6c 20 70 72 6f 6a 65 63 74 2c 20 70 6c  cial project, pl
0c80: 65 61 73 65 20 72 65 61 64 20 74 68 65 20 70 72  ease read the pr
0c90: 65 76 69 6f 75 73 20 73 65 6e 74 65 6e 63 65 20  evious sentence 
0ca0: 61 67 61 69 6e 20 2d 2d 20 6f 6e 6c 79 20 73 6c  again -- only sl
0cb0: 6f 77 65 72 20 0a 20 20 20 20 20 20 20 20 61 6e  ower .        an
0cc0: 64 20 73 6f 75 6e 64 20 6f 75 74 20 74 68 65 20  d sound out the 
0cd0: 77 6f 72 64 73 20 74 68 69 73 20 74 69 6d 65 2e  words this time.
0ce0: 0a 20 20 20 20 20 20 3c 2f 4c 49 3e 0a 20 20 20  .      </LI>.   
0cf0: 20 3c 2f 55 4c 3e 0a 20 20 20 20 3c 73 74 72 6f   </UL>.    <stro
0d00: 6e 67 3e 3c 2f 73 74 72 6f 6e 67 3e 0a 20 20 20  ng></strong>.   
0d10: 20 3c 68 32 3e 0a 20 20 20 20 20 20 3c 73 74 72   <h2>.      <str
0d20: 6f 6e 67 3e 44 65 73 69 67 6e 2d 54 69 6d 65 20  ong>Design-Time 
0d30: 53 75 70 70 6f 72 74 20 28 6e 65 77 20 61 73 20  Support (new as 
0d40: 6f 66 20 31 2e 30 2e 31 34 29 3c 2f 73 74 72 6f  of 1.0.14)</stro
0d50: 6e 67 3e 3c 2f 68 32 3e 0a 20 20 20 20 3c 50 3e  ng></h2>.    <P>
0d60: 55 6e 74 69 6c 20 61 6e 20 69 6e 73 74 61 6c 6c  Until an install
0d70: 65 72 20 69 73 20 63 72 65 61 74 65 64 2c 20 74  er is created, t
0d80: 68 72 6f 75 67 68 20 61 20 63 6f 6d 6d 61 6e 64  hrough a command
0d90: 2d 70 72 6f 6d 70 74 20 6f 72 20 57 69 6e 64 6f  -prompt or Windo
0da0: 77 73 20 45 78 70 6c 6f 72 65 72 2c 20 6e 61 76  ws Explorer, nav
0db0: 69 67 61 74 65 20 74 6f 20 74 68 65 20 3c 53 54  igate to the <ST
0dc0: 52 4f 4e 47 3e 53 51 4c 69 74 65 2e 4e 45 54 5c  RONG>SQLite.NET\
0dd0: 62 69 6e 5c 44 65 73 69 67 6e 65 72 3c 2f 53 54  bin\Designer</ST
0de0: 52 4f 4e 47 3e 0a 20 20 20 20 20 20 20 20 66 6f  RONG>.        fo
0df0: 6c 64 65 72 20 61 6e 64 20 65 78 65 63 75 74 65  lder and execute
0e00: 20 74 68 65 20 3c 53 54 52 4f 4e 47 3e 49 4e 53   the <STRONG>INS
0e10: 54 41 4c 4c 2e 43 4d 44 3c 2f 53 54 52 4f 4e 47  TALL.CMD</STRONG
0e20: 3e 0a 20 20 20 20 20 20 66 69 6c 65 2e 26 6e 62  >.      file.&nb
0e30: 73 70 3b 20 54 68 65 20 73 63 72 69 70 74 20 61  sp; The script a
0e40: 6e 64 0a 20 20 20 20 20 20 62 61 74 63 68 20 66  nd.      batch f
0e50: 69 6c 65 20 77 69 6c 6c 20 72 65 67 69 73 74 65  ile will registe
0e60: 72 20 74 68 65 20 53 79 73 74 65 6d 2e 44 61 74  r the System.Dat
0e70: 61 2e 53 51 4c 69 74 65 20 44 4c 4c 20 69 6e 20  a.SQLite DLL in 
0e80: 74 68 65 20 47 6c 6f 62 61 6c 20 41 73 73 65 6d  the Global Assem
0e90: 62 6c 79 20 43 61 63 68 65 2c 0a 20 20 20 20 20  bly Cache,.     
0ea0: 20 61 6e 64 20 6d 6f 64 69 66 79 20 74 68 65 20   and modify the 
0eb0: 6d 61 63 68 69 6e 65 2e 63 6f 6e 66 69 67 20 66  machine.config f
0ec0: 69 6c 65 20 74 6f 20 61 64 64 20 53 51 4c 69 74  ile to add SQLit
0ed0: 65 20 74 6f 20 74 68 65 20 6c 69 73 74 20 6f 66  e to the list of
0ee0: 20 64 65 66 61 75 6c 74 20 64 61 74 61 20 70 72   default data pr
0ef0: 6f 76 69 64 65 72 73 2e 3c 2f 50 3e 0a 20 20 20  oviders.</P>.   
0f00: 20 3c 48 32 3e 3c 53 54 52 4f 4e 47 3e 44 62 46   <H2><STRONG>DbF
0f10: 61 63 74 6f 72 79 20 53 75 70 70 6f 72 74 20 28  actory Support (
0f20: 4e 6f 6e 2d 43 6f 6d 70 61 63 74 20 46 72 61 6d  Non-Compact Fram
0f30: 65 77 6f 72 6b 29 3c 2f 53 54 52 4f 4e 47 3e 3c  ework)</STRONG><
0f40: 2f 48 32 3e 0a 20 20 20 20 49 6e 20 6f 72 64 65  /H2>.    In orde
0f50: 72 20 74 6f 20 75 73 65 20 74 68 65 20 53 51 4c  r to use the SQL
0f60: 69 74 65 46 61 63 74 6f 72 79 20 61 6e 64 20 68  iteFactory and h
0f70: 61 76 65 20 74 68 65 20 53 51 4c 69 74 65 20 64  ave the SQLite d
0f80: 61 74 61 20 70 72 6f 76 69 64 65 72 20 65 6e 75  ata provider enu
0f90: 6d 65 72 61 74 65 64 20 0a 20 20 20 20 69 6e 20  merated .    in 
0fa0: 74 68 65 20 44 62 50 72 6f 76 69 64 65 72 46 61  the DbProviderFa
0fb0: 63 74 6f 72 69 65 73 20 6d 65 74 68 6f 64 73 2c  ctories methods,
0fc0: 20 79 6f 75 20 6d 75 73 74 20 61 64 64 20 74 68   you must add th
0fd0: 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 73 65 67 6d  e following segm
0fe0: 65 6e 74 20 69 6e 74 6f 20 79 6f 75 72 20 61 70  ent into your ap
0ff0: 70 6c 69 63 61 74 69 6f 6e 27 73 20 61 70 70 2e  plication's app.
1000: 63 6f 6e 66 69 67 20 66 69 6c 65 3a 3c 62 72 3e  config file:<br>
1010: 0a 20 20 20 20 3c 62 72 3e 0a 20 20 20 20 3c 70  .    <br>.    <p
1020: 72 65 3e 26 6c 74 3b 63 6f 6e 66 69 67 75 72 61  re>&lt;configura
1030: 74 69 6f 6e 26 67 74 3b 0a 20 20 26 6c 74 3b 73  tion&gt;.  &lt;s
1040: 79 73 74 65 6d 2e 64 61 74 61 26 67 74 3b 0a 20  ystem.data&gt;. 
1050: 20 20 20 26 6c 74 3b 44 62 50 72 6f 76 69 64 65     &lt;DbProvide
1060: 72 46 61 63 74 6f 72 69 65 73 26 67 74 3b 0a 20  rFactories&gt;. 
1070: 20 20 20 20 20 26 6c 74 3b 72 65 6d 6f 76 65 20       &lt;remove 
1080: 69 6e 76 61 72 69 61 6e 74 3d 22 53 79 73 74 65  invariant="Syste
1090: 6d 2e 44 61 74 61 2e 53 51 4c 69 74 65 22 2f 26  m.Data.SQLite"/&
10a0: 67 74 3b 0a 20 20 20 20 20 20 26 6c 74 3b 61 64  gt;.      &lt;ad
10b0: 64 20 6e 61 6d 65 3d 22 53 51 4c 69 74 65 20 44  d name="SQLite D
10c0: 61 74 61 20 50 72 6f 76 69 64 65 72 22 20 69 6e  ata Provider" in
10d0: 76 61 72 69 61 6e 74 3d 22 53 79 73 74 65 6d 2e  variant="System.
10e0: 44 61 74 61 2e 53 51 4c 69 74 65 22 20 64 65 73  Data.SQLite" des
10f0: 63 72 69 70 74 69 6f 6e 3d 22 2e 4e 65 74 20 46  cription=".Net F
1100: 72 61 6d 65 77 6f 72 6b 20 44 61 74 61 20 50 72  ramework Data Pr
1110: 6f 76 69 64 65 72 20 66 6f 72 20 53 51 4c 69 74  ovider for SQLit
1120: 65 22 3c 42 52 20 3e 20 74 79 70 65 3d 22 53 79  e"<BR > type="Sy
1130: 73 74 65 6d 2e 44 61 74 61 2e 53 51 4c 69 74 65  stem.Data.SQLite
1140: 2e 53 51 4c 69 74 65 46 61 63 74 6f 72 79 2c 20  .SQLiteFactory, 
1150: 53 79 73 74 65 6d 2e 44 61 74 61 2e 53 51 4c 69  System.Data.SQLi
1160: 74 65 22 20 2f 26 67 74 3b 0a 20 20 20 20 26 6c  te" /&gt;.    &l
1170: 74 3b 2f 44 62 50 72 6f 76 69 64 65 72 46 61 63  t;/DbProviderFac
1180: 74 6f 72 69 65 73 26 67 74 3b 0a 20 20 26 6c 74  tories&gt;.  &lt
1190: 3b 2f 73 79 73 74 65 6d 2e 64 61 74 61 26 67 74  ;/system.data&gt
11a0: 3b 0a 26 6c 74 3b 2f 63 6f 6e 66 69 67 75 72 61  ;.&lt;/configura
11b0: 74 69 6f 6e 26 67 74 3b 0a 3c 2f 70 72 65 3e 0a  tion&gt;.</pre>.
11c0: 20 20 20 20 3c 70 3e 53 65 65 20 74 68 65 20 68      <p>See the h
11d0: 65 6c 70 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f  elp documentatio
11e0: 6e 20 66 6f 72 20 66 75 72 74 68 65 72 20 64 65  n for further de
11f0: 74 61 69 6c 73 20 6f 6e 20 69 6d 70 6c 65 6d 65  tails on impleme
1200: 6e 74 69 6e 67 20 62 6f 74 68 20 76 65 72 73 69  nting both versi
1210: 6f 6e 2d 73 70 65 63 69 66 69 63 20 28 47 41 43  on-specific (GAC
1220: 20 65 6e 61 62 6c 65 64 29 20 61 6e 64 20 76 65   enabled) and ve
1230: 72 73 69 6f 6e 20 69 6e 64 65 70 65 6e 64 65 6e  rsion independen
1240: 74 20 44 42 50 72 6f 76 69 64 65 72 46 61 63 74  t DBProviderFact
1250: 6f 72 69 65 73 20 73 75 70 70 6f 72 74 2e 0a 20  ories support.. 
1260: 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 3c 68       </p>.    <h
1270: 33 3e 0a 20 20 20 20 20 20 43 6f 6d 70 69 6c 69  3>.      Compili
1280: 6e 67 20 66 6f 72 20 74 68 65 20 43 6f 6d 70 61  ng for the Compa
1290: 63 74 20 46 72 61 6d 65 77 6f 72 6b 3c 2f 68 33  ct Framework</h3
12a0: 3e 0a 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20  >.    <p>.      
12b0: 4a 75 73 74 20 63 68 61 6e 67 65 20 74 68 65 20  Just change the 
12c0: 74 61 72 67 65 74 20 70 6c 61 74 66 6f 72 6d 20  target platform 
12d0: 66 72 6f 6d 20 57 69 6e 33 32 20 74 6f 20 43 6f  from Win32 to Co
12e0: 6d 70 61 63 74 20 46 72 61 6d 65 77 6f 72 6b 20  mpact Framework 
12f0: 61 6e 64 20 0a 20 20 20 20 20 20 72 65 63 6f 6d  and .      recom
1300: 70 69 6c 65 2e 26 6e 62 73 70 3b 20 3c 53 54 52  pile.&nbsp; <STR
1310: 4f 4e 47 3e 54 68 65 20 43 6f 6d 70 61 63 74 20  ONG>The Compact 
1320: 46 72 61 6d 65 77 6f 72 6b 20 68 61 73 20 6e 6f  Framework has no
1330: 20 73 75 70 70 6f 72 74 20 66 6f 72 20 65 6e 75   support for enu
1340: 6d 65 72 61 74 69 6e 67 20 0a 20 20 20 20 20 20  merating .      
1350: 20 20 61 74 74 72 69 62 75 74 65 73 20 69 6e 20    attributes in 
1360: 61 6e 20 61 73 73 65 6d 62 6c 79 2c 20 74 68 65  an assembly, the
1370: 72 65 66 6f 72 65 20 61 6c 6c 20 75 73 65 72 2d  refore all user-
1380: 64 65 66 69 6e 65 64 20 63 6f 6c 6c 61 74 69 6e  defined collatin
1390: 67 20 73 65 71 75 65 6e 63 65 73 20 61 6e 64 20  g sequences and 
13a0: 0a 20 20 20 20 20 20 20 20 66 75 6e 63 74 69 6f  .        functio
13b0: 6e 73 20 6d 75 73 74 20 62 65 20 65 78 70 6c 69  ns must be expli
13c0: 63 69 74 6c 79 20 72 65 67 69 73 74 65 72 65 64  citly registered
13d0: 2e 3c 2f 53 54 52 4f 4e 47 3e 26 6e 62 73 70 3b  .</STRONG>&nbsp;
13e0: 20 53 65 65 20 74 68 65 20 3c 53 54 52 4f 4e 47   See the <STRONG
13f0: 3e 74 65 73 74 63 65 3c 2f 53 54 52 4f 4e 47 3e  >testce</STRONG>
1400: 0a 20 20 20 20 20 20 73 61 6d 70 6c 65 20 61 70  .      sample ap
1410: 70 6c 69 63 61 74 69 6f 6e 20 66 6f 72 20 61 6e  plication for an
1420: 20 65 78 61 6d 70 6c 65 20 6f 66 20 68 6f 77 20   example of how 
1430: 74 6f 20 65 78 70 6c 69 63 69 74 6c 79 20 72 65  to explicitly re
1440: 67 69 73 74 65 72 20 75 73 65 72 2d 64 65 66 69  gister user-defi
1450: 6e 65 64 20 0a 20 20 20 20 20 20 63 6f 6c 6c 61  ned .      colla
1460: 74 69 6e 67 20 73 65 71 75 65 6e 63 65 73 20 61  ting sequences a
1470: 6e 64 20 66 75 6e 63 74 69 6f 6e 73 2e 3c 2f 70  nd functions.</p
1480: 3e 0a 20 20 20 20 3c 68 32 3e 0a 20 20 20 20 20  >.    <h2>.     
1490: 20 3c 62 3e 3c 41 20 6e 61 6d 65 3d 22 72 65 64   <b><A name="red
14a0: 69 73 74 22 3e 3c 2f 41 3e 44 69 73 74 72 69 62  ist"></A>Distrib
14b0: 75 74 69 6e 67 20 54 68 65 20 53 51 4c 69 74 65  uting The SQLite
14c0: 20 45 6e 67 69 6e 65 20 61 6e 64 20 41 44 4f 2e   Engine and ADO.
14d0: 4e 45 54 20 41 73 73 65 6d 62 6c 79 3c 2f 62 3e  NET Assembly</b>
14e0: 3c 2f 68 32 3e 0a 20 20 20 20 3c 50 3e 46 6f 72  </h2>.    <P>For
14f0: 20 57 69 6e 33 32 20 70 6c 61 74 66 6f 72 6d 73   Win32 platforms
1500: 2c 20 6f 6e 6c 79 20 74 68 65 20 3c 53 54 52 4f  , only the <STRO
1510: 4e 47 3e 53 79 73 74 65 6d 2e 44 61 74 61 2e 53  NG>System.Data.S
1520: 51 4c 69 74 65 2e 44 4c 4c 3c 2f 53 54 52 4f 4e  QLite.DLL</STRON
1530: 47 3e 20 66 69 6c 65 20 69 6e 20 0a 20 20 20 20  G> file in .    
1540: 20 20 74 68 65 20 3c 53 54 52 4f 4e 47 3e 62 69    the <STRONG>bi
1550: 6e 3c 2f 53 54 52 4f 4e 47 3e 20 66 6f 6c 64 65  n</STRONG> folde
1560: 72 20 73 68 6f 75 6c 64 20 62 65 20 64 69 73 74  r should be dist
1570: 72 69 62 75 74 65 64 20 77 69 74 68 20 79 6f 75  ributed with you
1580: 72 20 0a 20 20 20 20 20 20 61 70 70 6c 69 63 61  r .      applica
1590: 74 69 6f 6e 28 73 29 2e 26 6e 62 73 70 3b 20 54  tion(s).&nbsp; T
15a0: 68 69 73 20 44 4c 4c 20 63 6f 6e 74 61 69 6e 73  his DLL contains
15b0: 20 62 6f 74 68 20 74 68 65 20 6d 61 6e 61 67 65   both the manage
15c0: 64 20 77 72 61 70 70 65 72 20 61 6e 64 20 74 68  d wrapper and th
15d0: 65 20 6e 61 74 69 76 65 20 0a 20 20 20 20 20 20  e native .      
15e0: 53 51 4c 69 74 65 33 20 63 6f 64 65 62 61 73 65  SQLite3 codebase
15f0: 2e 3c 2f 50 3e 0a 20 20 20 20 3c 50 3e 46 6f 72  .</P>.    <P>For
1600: 20 43 6f 6d 70 61 63 74 20 46 72 61 6d 65 77 6f   Compact Framewo
1610: 72 6b 20 70 6c 61 74 66 6f 72 6d 73 2c 20 79 6f  rk platforms, yo
1620: 75 72 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 73  ur application s
1630: 68 6f 75 6c 64 20 72 65 66 65 72 65 6e 63 65 20  hould reference 
1640: 74 68 65 20 3c 53 54 52 4f 4e 47 3e 53 79 73 74  the <STRONG>Syst
1650: 65 6d 2e 44 61 74 61 2e 53 51 4c 69 74 65 2e 44  em.Data.SQLite.D
1660: 4c 4c 3c 2f 53 54 52 4f 4e 47 3e 0a 20 20 20 20  LL</STRONG>.    
1670: 20 20 66 69 6c 65 20 69 6e 20 74 68 65 20 3c 53    file in the <S
1680: 54 52 4f 4e 47 3e 62 69 6e 5c 43 6f 6d 70 61 63  TRONG>bin\Compac
1690: 74 46 72 61 6d 65 77 6f 72 6b 3c 2f 53 54 52 4f  tFramework</STRO
16a0: 4e 47 3e 20 66 6f 6c 64 65 72 2e 26 6e 62 73 70  NG> folder.&nbsp
16b0: 3b 20 54 68 65 20 3c 53 54 52 4f 4e 47 3e 53 79  ; The <STRONG>Sy
16c0: 73 74 65 6d 2e 44 61 74 61 2e 53 51 4c 69 74 65  stem.Data.SQLite
16d0: 2e 44 4c 4c 3c 2f 53 54 52 4f 4e 47 3e 0a 20 20  .DLL</STRONG>.  
16e0: 20 20 20 20 61 6e 64 20 3c 53 54 52 4f 4e 47 3e      and <STRONG>
16f0: 53 51 4c 69 74 65 2e 49 6e 74 65 72 6f 70 2e 44  SQLite.Interop.D
1700: 4c 4c 3c 2f 53 54 52 4f 4e 47 3e 20 66 69 6c 65  LL</STRONG> file
1710: 73 20 66 72 6f 6d 20 74 68 65 20 3c 53 54 52 4f  s from the <STRO
1720: 4e 47 3e 62 69 6e 5c 43 6f 6d 70 61 63 74 46 72  NG>bin\CompactFr
1730: 61 6d 65 77 6f 72 6b 3c 2f 53 54 52 4f 4e 47 3e  amework</STRONG>
1740: 0a 20 20 20 20 20 20 66 6f 6c 64 65 72 20 6d 75  .      folder mu
1750: 73 74 20 62 65 20 64 69 73 74 72 69 62 75 74 65  st be distribute
1760: 64 20 77 69 74 68 20 79 6f 75 72 20 61 70 70 6c  d with your appl
1770: 69 63 61 74 69 6f 6e 28 73 29 2e 26 6e 62 73 70  ication(s).&nbsp
1780: 3b 20 54 68 65 79 20 63 6f 6e 74 61 69 6e 20 74  ; They contain t
1790: 68 65 20 0a 20 20 20 20 20 20 6d 61 6e 61 67 65  he .      manage
17a0: 64 20 77 72 61 70 70 65 72 20 61 6e 64 20 74 68  d wrapper and th
17b0: 65 20 6e 61 74 69 76 65 20 53 51 4c 69 74 65 33  e native SQLite3
17c0: 20 63 6f 64 65 62 61 73 65 20 72 65 73 70 65 63   codebase respec
17d0: 74 69 76 65 6c 79 2e 26 6e 62 73 70 3b 20 54 68  tively.&nbsp; Th
17e0: 65 20 43 6f 6d 70 61 63 74 20 0a 20 20 20 20 20  e Compact .     
17f0: 20 46 72 61 6d 65 77 6f 72 6b 20 64 6f 65 73 20   Framework does 
1800: 6e 6f 74 20 63 75 72 72 65 6e 74 6c 79 20 73 75  not currently su
1810: 70 70 6f 72 74 20 6d 61 6e 61 67 65 64 20 43 2b  pport managed C+
1820: 2b 2c 20 74 68 75 73 20 74 68 65 20 72 65 61 73  +, thus the reas
1830: 6f 6e 20 66 6f 72 20 74 77 6f 20 0a 20 20 20 20  on for two .    
1840: 20 20 66 69 6c 65 73 2e 3c 2f 50 3e 0a 20 20 20    files.</P>.   
1850: 20 3c 48 32 3e 3c 42 3e 44 65 76 65 6c 6f 70 6d   <H2><B>Developm
1860: 65 6e 74 20 4e 6f 74 65 73 20 52 65 67 61 72 64  ent Notes Regard
1870: 69 6e 67 20 74 68 65 20 53 51 4c 69 74 65 20 33  ing the SQLite 3
1880: 20 53 6f 75 72 63 65 20 43 6f 64 65 3c 2f 42 3e   Source Code</B>
1890: 3c 2f 48 32 3e 0a 20 20 20 20 3c 70 3e 0a 20 20  </H2>.    <p>.  
18a0: 20 20 20 20 54 68 65 20 53 51 4c 69 74 65 33 20      The SQLite3 
18b0: 73 6f 75 72 63 65 20 63 6f 64 65 20 69 73 20 63  source code is c
18c0: 6f 6d 70 69 6c 65 64 20 61 6c 6d 6f 73 74 20 64  ompiled almost d
18d0: 69 72 65 63 74 6c 79 20 66 72 6f 6d 20 74 68 65  irectly from the
18e0: 20 53 51 4c 69 74 65 2e 6f 72 67 20 72 65 6c 65   SQLite.org rele
18f0: 61 73 65 0a 20 20 20 20 20 20 73 6f 75 72 63 65  ase.      source
1900: 73 2e 26 6e 62 73 70 3b 20 41 6c 6c 20 62 75 69  s.&nbsp; All bui
1910: 6c 64 73 20 6f 66 20 73 71 6c 69 74 65 20 61 66  lds of sqlite af
1920: 74 65 72 20 33 2e 32 2e 38 20 68 61 76 65 20 69  ter 3.2.8 have i
1930: 6e 63 6c 75 64 65 64 20 73 75 70 70 6f 72 74 20  ncluded support 
1940: 66 6f 72 20 57 69 6e 64 6f 77 73 0a 20 20 20 20  for Windows.    
1950: 20 20 43 45 20 28 77 69 74 68 6f 75 74 20 66 69    CE (without fi
1960: 6c 65 20 6c 6f 63 6b 69 6e 67 29 2c 20 62 75 74  le locking), but
1970: 20 74 68 65 20 41 44 4f 2e 4e 45 54 20 73 6f 75   the ADO.NET sou
1980: 72 63 65 73 20 68 65 72 65 20 63 6f 6e 74 61 69  rces here contai
1990: 6e 20 43 45 20 6c 6f 63 6b 69 6e 67 20 6d 6f 64  n CE locking mod
19a0: 69 66 69 63 61 74 69 6f 6e 73 0a 20 20 20 20 20  ifications.     
19b0: 20 74 6f 20 74 68 65 20 6f 73 5f 77 69 6e 2e 63   to the os_win.c
19c0: 2e 26 6e 62 73 70 3b 20 49 20 68 6f 70 65 20 65  .&nbsp; I hope e
19d0: 76 65 6e 74 75 61 6c 6c 79 20 74 68 65 20 6c 6f  ventually the lo
19e0: 63 6b 69 6e 67 20 63 6f 64 65 20 77 69 6c 6c 20  cking code will 
19f0: 62 65 20 69 6e 63 6f 72 70 6f 72 61 74 65 64 20  be incorporated 
1a00: 69 6e 74 6f 0a 20 20 20 20 20 20 74 68 65 20 72  into.      the r
1a10: 6f 6f 74 20 73 71 6c 69 74 65 20 63 6f 64 65 62  oot sqlite codeb
1a20: 61 73 65 2e 26 6e 62 73 70 3b 20 41 64 64 69 74  ase.&nbsp; Addit
1a30: 69 6f 6e 61 6c 6c 79 2c 20 74 77 6f 20 6d 69 6e  ionally, two min
1a40: 6f 72 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 73  or modifications
1a50: 20 61 72 65 20 6d 61 64 65 20 74 6f 0a 20 20 20   are made to.   
1a60: 20 20 20 74 68 65 20 73 6f 75 72 63 65 73 2c 20     the sources, 
1a70: 74 68 6f 73 65 20 6d 6f 64 69 66 69 63 61 74 69  those modificati
1a80: 6f 6e 73 20 61 72 65 20 6d 61 64 65 20 61 75 74  ons are made aut
1a90: 6f 6d 61 74 69 63 61 6c 6c 79 20 62 79 20 74 68  omatically by th
1aa0: 65 20 66 69 78 73 6f 75 72 63 65 2e 76 62 73 20  e fixsource.vbs 
1ab0: 66 69 6c 65 0a 20 20 20 20 20 20 77 68 65 6e 20  file.      when 
1ac0: 74 68 65 20 56 53 32 30 30 35 20 73 6f 6c 75 74  the VS2005 solut
1ad0: 69 6f 6e 20 69 73 20 63 6f 6d 70 69 6c 65 64 2e  ion is compiled.
1ae0: 3c 2f 70 3e 0a 20 20 20 20 3c 70 3e 3c 2f 70 3e  </p>.    <p></p>
1af0: 0a 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 3c  .    <p>.      <
1b00: 62 3e 56 65 72 73 69 6f 6e 20 48 69 73 74 6f 72  b>Version Histor
1b10: 79 3c 2f 62 3e 3c 2f 70 3e 0a 20 20 20 20 3c 70  y</b></p>.    <p
1b20: 3e 3c 62 3e 31 2e 30 2e 32 34 2e 33 20 62 65 74  ><b>1.0.24.3 bet
1b30: 61 20 2d 20 4a 61 6e 75 61 72 79 20 31 30 2c 20  a - January 10, 
1b40: 32 30 30 36 3c 2f 62 3e 3c 2f 70 3e 0a 20 20 20  2006</b></p>.   
1b50: 20 3c 75 6c 3e 0a 20 20 20 20 3c 6c 69 3e 54 68   <ul>.    <li>Th
1b60: 69 73 20 62 65 74 61 20 69 73 20 62 75 69 6c 74  is beta is built
1b70: 20 66 72 6f 6d 20 73 71 6c 69 74 65 2e 6f 72 67   from sqlite.org
1b80: 27 73 20 43 56 53 20 48 45 41 44 20 28 61 73 20  's CVS HEAD (as 
1b90: 69 74 20 61 70 70 65 61 72 65 64 20 61 74 20 6f  it appeared at o
1ba0: 66 20 74 68 65 20 64 61 74 65 20 6f 66 0a 20 20  f the date of.  
1bb0: 20 20 20 20 74 68 69 73 20 62 65 74 61 29 20 61      this beta) a
1bc0: 6e 64 20 63 6f 6e 74 61 69 6e 73 20 64 65 76 65  nd contains deve
1bd0: 6c 6f 70 6d 65 6e 74 2d 69 6e 2d 70 72 6f 67 72  lopment-in-progr
1be0: 65 73 73 20 63 6f 64 65 2e 26 6e 62 73 70 3b 20  ess code.&nbsp; 
1bf0: 54 68 65 72 65 66 6f 72 65 20 6e 6f 20 67 75 61  Therefore no gua
1c00: 72 61 6e 74 65 65 73 0a 20 20 20 20 20 20 63 61  rantees.      ca
1c10: 6e 20 62 65 20 6d 61 64 65 20 72 65 67 61 72 64  n be made regard
1c20: 69 6e 67 20 69 74 73 20 73 75 69 74 61 62 69 6c  ing its suitabil
1c30: 69 74 79 20 66 6f 72 20 70 72 6f 64 75 63 74 69  ity for producti
1c40: 6f 6e 20 75 73 65 2e 3c 2f 6c 69 3e 3c 6c 69 3e  on use.</li><li>
1c50: 41 64 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f  Added support fo
1c60: 72 20 64 61 74 61 62 61 73 65 20 65 6e 63 72 79  r database encry
1c70: 70 74 69 6f 6e 20 61 74 20 74 68 65 20 70 61 67  ption at the pag
1c80: 65 72 20 6c 65 76 65 6c 2e 26 6e 62 73 70 3b 20  er level.&nbsp; 
1c90: 44 61 74 61 62 61 73 65 73 0a 20 20 20 20 61 72  Databases.    ar
1ca0: 65 20 65 6e 63 72 79 70 74 65 64 20 75 73 69 6e  e encrypted usin
1cb0: 67 20 61 20 31 32 38 2d 62 69 74 20 52 43 34 20  g a 128-bit RC4 
1cc0: 73 74 72 65 61 6d 20 61 6c 67 6f 72 69 74 68 6d  stream algorithm
1cd0: 2e 26 6e 62 73 70 3b 20 54 6f 20 6f 70 65 6e 20  .&nbsp; To open 
1ce0: 61 6e 20 65 78 69 73 74 69 6e 67 20 65 6e 63 72  an existing encr
1cf0: 79 70 74 65 64 0a 20 20 20 20 64 61 74 61 62 61  ypted.    databa
1d00: 73 65 2c 20 79 6f 75 20 6d 61 79 20 6e 6f 77 20  se, you may now 
1d10: 73 70 65 63 69 66 79 20 61 20 22 50 61 73 73 77  specify a "Passw
1d20: 6f 72 64 3d 7b 70 61 73 73 77 6f 72 64 7d 22 20  ord={password}" 
1d30: 74 65 78 74 20 69 6e 20 74 68 65 20 43 6f 6e 6e  text in the Conn
1d40: 65 63 74 69 6f 6e 53 74 72 69 6e 67 2c 0a 20 20  ectionString,.  
1d50: 20 20 6f 72 20 79 6f 75 20 6d 61 79 20 63 61 6c    or you may cal
1d60: 6c 20 74 68 65 20 53 51 4c 69 74 65 43 6f 6e 6e  l the SQLiteConn
1d70: 65 63 74 69 6f 6e 2e 53 65 74 50 61 73 73 77 6f  ection.SetPasswo
1d80: 72 64 28 29 20 66 75 6e 63 74 69 6f 6e 20 74 6f  rd() function to
1d90: 20 73 65 74 20 74 68 65 20 70 61 73 73 77 6f 72   set the passwor
1da0: 64 0a 20 20 20 20 6f 6e 20 61 6e 20 6f 70 65 6e  d.    on an open
1db0: 20 63 6f 6e 6e 65 63 74 69 6f 6e 2e 20 26 6e 62   connection. &nb
1dc0: 73 70 3b 54 6f 20 65 6e 63 72 79 70 74 20 65 78  sp;To encrypt ex
1dd0: 69 73 74 69 6e 67 20 6e 6f 6e 2d 65 6e 63 72 79  isting non-encry
1de0: 70 74 65 64 20 64 61 74 61 62 61 73 65 73 20 6f  pted databases o
1df0: 72 20 74 6f 20 63 68 61 6e 67 65 0a 20 20 20 20  r to change.    
1e00: 74 68 65 20 70 61 73 73 77 6f 72 64 20 6f 6e 20  the password on 
1e10: 61 6e 20 65 6e 63 72 79 70 74 65 64 20 64 61 74  an encrypted dat
1e20: 61 62 61 73 65 2c 20 79 6f 75 20 6d 75 73 74 20  abase, you must 
1e30: 75 73 65 20 74 68 65 20 53 51 4c 69 74 65 43 6f  use the SQLiteCo
1e40: 6e 6e 65 63 74 69 6f 6e 2e 43 68 61 6e 67 65 50  nnection.ChangeP
1e50: 61 73 73 77 6f 72 64 28 29 0a 20 20 20 20 66 75  assword().    fu
1e60: 6e 63 74 69 6f 6e 2e 26 6e 62 73 70 3b 20 49 66  nction.&nbsp; If
1e70: 20 79 6f 75 20 75 73 65 20 53 65 74 50 61 73 73   you use SetPass
1e80: 77 6f 72 64 28 29 20 69 6e 73 74 65 61 64 20 6f  word() instead o
1e90: 66 20 73 70 65 63 69 66 79 69 6e 67 20 61 20 70  f specifying a p
1ea0: 61 73 73 77 6f 72 64 20 69 6e 20 74 68 65 0a 20  assword in the. 
1eb0: 20 20 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 73 74     connection st
1ec0: 72 69 6e 67 2c 20 6f 72 20 63 61 6c 6c 20 43 68  ring, or call Ch
1ed0: 61 6e 67 65 50 61 73 73 77 6f 72 64 28 29 20 79  angePassword() y
1ee0: 6f 75 20 6d 61 79 20 75 73 65 20 61 20 62 69 6e  ou may use a bin
1ef0: 61 72 79 20 62 79 74 65 20 61 72 72 61 79 20 6f  ary byte array o
1f00: 72 20 61 0a 20 20 20 20 74 65 78 74 20 73 74 72  r a.    text str
1f10: 69 6e 67 20 61 73 20 74 68 65 20 70 61 73 73 77  ing as the passw
1f20: 6f 72 64 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20  ord.</li>.      
1f30: 3c 6c 69 3e 52 65 77 72 6f 74 65 20 74 68 65 20  <li>Rewrote the 
1f40: 6c 6f 63 6b 69 6e 67 20 69 6d 70 6c 65 6d 65 6e  locking implemen
1f50: 74 61 74 69 6f 6e 20 66 6f 72 20 74 68 65 20 43  tation for the C
1f60: 6f 6d 70 61 63 74 20 46 72 61 6d 65 77 6f 72 6b  ompact Framework
1f70: 2e 26 6e 62 73 70 3b 20 49 74 20 69 73 20 6e 6f  .&nbsp; It is no
1f80: 77 0a 20 20 20 20 20 20 20 20 6d 6f 72 65 20 72  w.        more r
1f90: 6f 62 75 73 74 20 61 6e 64 20 69 6e 63 6f 72 70  obust and incorp
1fa0: 6f 72 61 74 65 73 20 69 6e 74 6f 20 74 68 65 20  orates into the 
1fb0: 53 51 4c 69 74 65 20 63 6f 64 65 62 61 73 65 20  SQLite codebase 
1fc0: 6d 6f 72 65 20 65 66 66 69 63 69 65 6e 74 6c 79  more efficiently
1fd0: 20 74 68 61 6e 20 74 68 65 0a 20 20 20 20 20 20   than the.      
1fe0: 20 20 70 72 65 76 69 6f 75 73 20 43 45 20 61 64    previous CE ad
1ff0: 61 70 74 61 74 69 6f 6e 2e 3c 2f 6c 69 3e 0a 20  aptation.</li>. 
2000: 20 20 20 20 20 3c 6c 69 3e 4d 6f 76 65 64 20 73       <li>Moved s
2010: 6f 6d 65 20 6f 66 20 74 68 65 20 65 6d 62 65 64  ome of the embed
2020: 64 65 64 20 73 63 68 65 6d 61 20 58 4d 4c 20 64  ded schema XML d
2030: 61 74 61 20 69 6e 74 6f 20 61 20 72 65 73 6f 75  ata into a resou
2040: 72 63 65 20 66 69 6c 65 20 74 6f 20 65 61 73 65  rce file to ease
2050: 20 63 6f 64 65 20 72 65 61 64 61 62 69 6c 69 74   code readabilit
2060: 79 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 6c  y.</li>.      <l
2070: 69 3e 41 75 74 6f 6d 61 74 65 64 20 74 68 65 20  i>Automated the 
2080: 66 69 78 75 70 20 6f 66 20 74 68 65 20 6f 72 69  fixup of the ori
2090: 67 69 6e 61 6c 20 73 71 6c 69 74 65 20 63 6f 64  ginal sqlite cod
20a0: 65 62 61 73 65 27 73 20 73 6f 75 72 63 65 20 70  ebase's source p
20b0: 72 69 6f 72 20 74 6f 20 63 6f 6d 70 69 6c 69 6e  rior to compilin
20c0: 67 2c 0a 20 20 20 20 20 20 20 20 74 6f 20 65 61  g,.        to ea
20d0: 73 65 20 6d 65 72 67 69 6e 67 20 77 69 74 68 20  se merging with 
20e0: 73 71 6c 69 74 65 2e 6f 72 67 27 73 20 73 6f 75  sqlite.org's sou
20f0: 72 63 65 2e 26 6e 62 73 70 3b 3c 2f 6c 69 3e 0a  rce.&nbsp;</li>.
2100: 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 3c 70      </ul>.    <p
2110: 3e 3c 62 3e 31 2e 30 2e 32 34 2e 32 20 2d 20 44  ><b>1.0.24.2 - D
2120: 65 63 65 6d 62 65 72 20 33 30 2c 20 32 30 30 35  ecember 30, 2005
2130: 3c 2f 62 3e 3c 2f 70 3e 0a 20 20 20 20 3c 75 6c  </b></p>.    <ul
2140: 3e 0a 20 20 20 20 3c 6c 69 3e 46 69 78 65 64 20  >.    <li>Fixed 
2150: 74 68 65 20 53 51 4c 69 74 65 44 61 74 61 52 65  the SQLiteDataRe
2160: 61 64 65 72 2e 48 61 73 52 6f 77 73 20 70 72 6f  ader.HasRows pro
2170: 70 65 72 74 79 20 74 6f 20 72 65 74 75 72 6e 20  perty to return 
2180: 74 68 65 20 70 72 6f 70 65 72 20 76 61 6c 75 65  the proper value
2190: 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 6c 69  .</li>.      <li
21a0: 3e 49 6d 70 6c 65 6d 65 6e 74 65 64 20 74 68 65  >Implemented the
21b0: 20 69 6e 61 64 76 65 72 74 65 6e 74 6c 79 20 6e   inadvertently n
21c0: 65 67 6c 65 63 74 65 64 20 52 65 63 6f 72 64 73  eglected Records
21d0: 41 66 66 65 63 74 65 64 20 70 72 6f 70 65 72 74  Affected propert
21e0: 79 20 6f 6e 20 53 51 4c 69 74 65 44 61 74 61 52  y on SQLiteDataR
21f0: 65 61 64 65 72 2e 0a 20 20 20 20 20 20 3c 2f 6c  eader..      </l
2200: 69 3e 0a 20 20 20 20 20 20 3c 6c 69 3e 53 51 4c  i>.      <li>SQL
2210: 69 74 65 46 75 6e 63 74 69 6f 6e 20 73 74 61 74  iteFunction stat
2220: 69 63 20 63 6f 6e 73 74 72 75 63 74 6f 72 20 77  ic constructor w
2230: 61 73 20 63 68 61 6e 67 65 64 20 74 6f 20 70 72  as changed to pr
2240: 65 2d 66 69 6c 74 65 72 20 63 6c 61 73 73 65 73  e-filter classes
2250: 20 77 69 74 68 20 6f 6e 6c 79 20 74 68 65 0a 20   with only the. 
2260: 20 20 20 20 20 20 20 53 51 4c 69 74 65 46 75 6e         SQLiteFun
2270: 63 74 69 6f 6e 41 74 74 72 69 62 75 74 65 2e 26  ctionAttribute.&
2280: 6e 62 73 70 3b 20 54 68 65 20 63 6f 64 65 20 77  nbsp; The code w
2290: 61 73 20 74 68 72 6f 77 69 6e 67 20 61 6e 20 65  as throwing an e
22a0: 78 63 65 70 74 69 6f 6e 20 77 68 65 6e 20 63 65  xception when ce
22b0: 72 74 61 69 6e 0a 20 20 20 20 20 20 20 20 61 73  rtain.        as
22c0: 73 65 6d 62 6c 69 65 73 20 77 65 72 65 20 72 65  semblies were re
22d0: 66 65 72 65 6e 63 65 64 20 69 6e 20 61 20 70 72  ferenced in a pr
22e0: 6f 6a 65 63 74 2e 20 3c 2f 6c 69 3e 0a 20 20 20  oject. </li>.   
22f0: 20 20 20 3c 6c 69 3e 46 69 78 65 64 20 74 68 65     <li>Fixed the
2300: 20 53 51 4c 69 74 65 44 61 74 61 41 64 61 70 74   SQLiteDataAdapt
2310: 65 72 20 4f 6e 52 6f 77 55 70 64 61 74 65 64 20  er OnRowUpdated 
2320: 65 76 65 6e 74 2c 20 77 68 69 63 68 20 77 61 73  event, which was
2330: 20 75 73 69 6e 67 20 74 68 65 20 77 72 6f 6e 67   using the wrong
2340: 20 76 61 72 69 61 62 6c 65 0a 20 20 20 20 20 20   variable.      
2350: 20 20 74 6f 20 66 69 6e 64 20 74 68 65 20 61 74    to find the at
2360: 74 61 63 68 65 64 20 65 76 65 6e 74 20 68 61 6e  tached event han
2370: 64 6c 65 72 20 61 6e 64 20 73 75 62 73 65 71 75  dler and subsequ
2380: 65 6e 74 6c 79 20 6e 6f 74 20 72 61 69 73 69 6e  ently not raisin
2390: 67 20 74 68 65 20 65 76 65 6e 74 2e 3c 2f 6c 69  g the event.</li
23a0: 3e 0a 20 20 20 20 20 20 3c 6c 69 3e 53 6d 61 6c  >.      <li>Smal
23b0: 6c 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 73 20  l optimizations 
23c0: 61 6e 64 20 66 69 78 65 73 20 74 6f 20 53 51 4c  and fixes to SQL
23d0: 69 74 65 44 61 74 61 52 65 61 64 65 72 2e 4e 65  iteDataReader.Ne
23e0: 78 74 52 65 73 75 6c 74 28 29 2e 26 6e 62 73 70  xtResult().&nbsp
23f0: 3b 3c 2f 6c 69 3e 0a 20 20 20 20 3c 2f 75 6c 3e  ;</li>.    </ul>
2400: 0a 20 20 20 20 3c 70 3e 3c 62 3e 31 2e 30 2e 32  .    <p><b>1.0.2
2410: 34 2e 31 20 2d 20 44 65 63 65 6d 62 65 72 20 31  4.1 - December 1
2420: 39 2c 20 32 30 30 35 3c 2f 62 3e 3c 2f 70 3e 0a  9, 2005</b></p>.
2430: 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 3c 6c 69      <ul>.    <li
2440: 3e 55 70 64 61 74 65 20 63 6f 72 65 20 53 51 4c  >Update core SQL
2450: 69 74 65 20 65 6e 67 69 6e 65 20 74 6f 20 33 2e  ite engine to 3.
2460: 32 2e 38 26 6e 62 73 70 3b 3c 2f 6c 69 3e 3c 2f  2.8&nbsp;</li></
2470: 75 6c 3e 0a 20 20 20 20 3c 70 3e 3c 62 3e 31 2e  ul>.    <p><b>1.
2480: 30 2e 32 34 20 2d 20 44 65 63 65 6d 62 65 72 20  0.24 - December 
2490: 39 2c 20 32 30 30 35 3c 2f 62 3e 3c 2f 70 3e 0a  9, 2005</b></p>.
24a0: 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 3c 6c 69      <ul>.    <li
24b0: 3e 46 69 78 65 64 20 74 68 65 3c 65 6d 3e 20 43  >Fixed the<em> C
24c0: 61 74 61 6c 6f 67 73 3c 2f 65 6d 3e 20 73 63 68  atalogs</em> sch
24d0: 65 6d 61 20 62 75 67 20 74 68 61 74 20 63 61 75  ema bug that cau
24e0: 73 65 64 20 61 74 74 61 63 68 65 64 20 64 61 74  sed attached dat
24f0: 61 62 61 73 65 73 20 6e 6f 74 20 74 6f 20 62 65  abases not to be
2500: 20 72 65 2d 61 74 74 61 63 68 65 64 20 74 6f 20   re-attached to 
2510: 61 20 63 6c 6f 6e 65 64 20 63 6f 6e 6e 65 63 74  a cloned connect
2520: 69 6f 6e 0a 20 20 20 20 3c 2f 6c 69 3e 0a 20 20  ion.    </li>.  
2530: 20 20 20 20 3c 6c 69 3e 45 6e 68 61 6e 63 65 64      <li>Enhanced
2540: 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 74 6f   transactions to
2550: 20 61 6c 6c 6f 77 20 66 6f 72 20 61 20 64 65 66   allow for a def
2560: 65 72 72 65 64 20 6f 72 20 69 6d 6d 65 64 69 61  erred or immedia
2570: 74 65 20 77 72 69 74 65 6c 6f 63 6b 2e 20 26 6e  te writelock. &n
2580: 62 73 70 3b 53 51 4c 69 74 65 43 6f 6e 6e 65 63  bsp;SQLiteConnec
2590: 74 69 6f 6e 2e 42 65 67 69 6e 54 72 61 6e 73 61  tion.BeginTransa
25a0: 63 74 69 6f 6e 28 29 0a 20 20 20 20 20 20 20 20  ction().        
25b0: 6e 6f 77 20 68 61 73 20 61 6e 20 61 64 64 69 74  now has an addit
25c0: 69 6f 6e 61 6c 20 6f 76 65 72 6c 6f 61 64 20 74  ional overload t
25d0: 6f 20 73 75 70 70 6f 72 74 20 69 74 26 6e 62 73  o support it&nbs
25e0: 70 3b 3c 2f 6c 69 3e 3c 6c 69 3e 43 6f 6d 6d 61  p;</li><li>Comma
25f0: 6e 64 73 20 61 72 65 20 6e 6f 77 20 70 72 65 70  nds are now prep
2600: 61 72 65 64 20 61 73 20 74 68 65 79 20 61 72 65  ared as they are
2610: 20 65 78 65 63 75 74 65 64 20 69 6e 73 74 65 61   executed instea
2620: 64 20 6f 66 20 62 65 66 6f 72 65 68 61 6e 64 2e  d of beforehand.
2630: 26 6e 62 73 70 3b 20 54 68 69 73 0a 20 20 20 20  &nbsp; This.    
2640: 20 20 66 69 78 65 73 20 61 20 62 75 67 20 77 68    fixes a bug wh
2650: 65 72 65 62 79 20 61 20 6d 75 6c 74 69 2d 73 74  ereby a multi-st
2660: 61 74 65 6d 65 6e 74 20 63 6f 6d 6d 61 6e 64 20  atement command 
2670: 74 68 61 74 20 61 6c 74 65 72 73 20 74 68 65 20  that alters the 
2680: 64 61 74 61 62 61 73 65 20 61 6e 64 20 73 75 62  database and sub
2690: 73 65 71 75 65 6e 74 6c 79 0a 20 20 20 20 20 20  sequently.      
26a0: 72 65 66 65 72 65 6e 63 65 73 20 74 68 65 20 61  references the a
26b0: 6c 74 65 72 65 64 20 64 61 74 61 20 77 6f 75 6c  ltered data woul
26c0: 64 20 66 61 69 6c 20 64 75 72 69 6e 67 20 50 72  d fail during Pr
26d0: 65 70 61 72 65 28 29 2e 3c 2f 6c 69 3e 3c 6c 69  epare().</li><li
26e0: 3e 54 69 67 68 74 65 6e 65 64 20 75 70 20 74 68  >Tightened up th
26f0: 65 20 53 51 4c 69 74 65 44 61 74 61 52 65 61 64  e SQLiteDataRead
2700: 65 72 20 74 6f 20 70 72 65 76 65 6e 74 20 72 65  er to prevent re
2710: 61 64 69 6e 67 20 63 6f 6c 75 6d 6e 73 20 62 65  ading columns be
2720: 66 6f 72 65 20 63 61 6c 6c 69 6e 67 0a 20 20 20  fore calling.   
2730: 20 74 68 65 20 66 69 72 73 74 20 52 65 61 64 28   the first Read(
2740: 29 20 61 6e 64 20 74 6f 20 70 72 65 76 65 6e 74  ) and to prevent
2750: 20 72 65 61 64 69 6e 67 20 63 6f 6c 75 6d 6e 73   reading columns
2760: 20 61 66 74 65 72 20 74 68 65 20 6c 61 73 74 20   after the last 
2770: 52 65 61 64 28 29 2e 3c 2f 6c 69 3e 0a 20 20 20  Read().</li>.   
2780: 20 20 20 3c 6c 69 3e 41 20 6d 6f 72 65 20 64 65     <li>A more de
2790: 73 63 72 69 70 74 69 76 65 20 65 72 72 6f 72 20  scriptive error 
27a0: 69 73 20 74 68 72 6f 77 6e 20 69 66 20 74 68 65  is thrown if the
27b0: 72 65 20 61 72 65 6e 27 74 20 65 6e 6f 75 67 68  re aren't enough
27c0: 20 70 61 72 61 6d 65 74 65 72 73 20 69 6e 20 74   parameters in t
27d0: 68 65 20 63 6f 6d 6d 61 6e 64 0a 20 20 20 20 20  he command.     
27e0: 20 20 20 74 6f 20 73 61 74 69 73 66 79 20 74 68     to satisfy th
27f0: 65 20 70 61 72 61 6d 65 74 65 72 73 20 72 65 71  e parameters req
2800: 75 69 72 65 64 20 62 79 20 74 68 65 20 73 74 61  uired by the sta
2810: 74 65 6d 65 6e 74 28 73 29 2e 26 6e 62 73 70 3b  tement(s).&nbsp;
2820: 3c 2f 6c 69 3e 0a 20 20 20 20 3c 2f 75 6c 3e 0a  </li>.    </ul>.
2830: 20 20 20 20 3c 70 3e 3c 62 3e 31 2e 30 2e 32 33      <p><b>1.0.23
2840: 20 2d 20 4e 6f 76 65 6d 62 65 72 20 32 31 2c 20   - November 21, 
2850: 32 30 30 35 3c 2f 62 3e 3c 2f 70 3e 0a 20 20 20  2005</b></p>.   
2860: 20 3c 75 6c 3e 0a 20 20 20 20 3c 6c 69 3e 4e 61   <ul>.    <li>Na
2870: 6d 65 64 20 70 61 72 61 6d 65 74 65 72 73 20 6d  med parameters m
2880: 61 79 20 6e 6f 77 20 62 65 67 69 6e 20 77 69 74  ay now begin wit
2890: 68 20 3c 73 74 72 6f 6e 67 3e 40 3c 2f 73 74 72  h <strong>@</str
28a0: 6f 6e 67 3e 20 74 6f 20 65 61 73 65 20 70 6f 72  ong> to ease por
28b0: 74 61 62 69 6c 69 74 79 20 6f 66 0a 20 20 20 20  tability of.    
28c0: 20 20 74 68 65 20 70 72 6f 76 69 64 65 72 2e 20    the provider. 
28d0: 53 51 4c 69 74 65 27 73 20 6e 61 6d 65 64 20 70  SQLite's named p
28e0: 61 72 61 6d 65 74 65 72 73 20 61 72 65 20 6f 72  arameters are or
28f0: 64 69 6e 61 72 69 6c 79 20 70 72 65 66 69 78 65  dinarily prefixe
2900: 64 20 77 69 74 68 20 61 20 3c 73 74 72 6f 6e 67  d with a <strong
2910: 3e 3a 20 3c 2f 73 74 72 6f 6e 67 3e 0a 20 20 20  >: </strong>.   
2920: 20 20 20 6f 72 3c 73 74 72 6f 6e 67 3e 20 24 3c     or<strong> $<
2930: 2f 73 74 72 6f 6e 67 3e 2e 26 6e 62 73 70 3b 20  /strong>.&nbsp; 
2940: 54 68 65 20 64 65 73 69 67 6e 65 72 20 77 69 6c  The designer wil
2950: 6c 20 73 74 69 6c 6c 20 75 73 65 20 74 68 65 20  l still use the 
2960: 3c 73 74 72 6f 6e 67 3e 24 3c 2f 73 74 72 6f 6e  <strong>$</stron
2970: 67 3e 0a 20 20 20 20 20 20 70 72 65 66 69 78 20  g>.      prefix 
2980: 68 6f 77 65 76 65 72 2c 20 73 69 6e 63 65 20 69  however, since i
2990: 74 73 20 6d 6f 72 65 20 63 6f 6d 70 61 74 69 62  ts more compatib
29a0: 6c 65 20 77 69 74 68 20 74 68 65 20 64 65 66 61  le with the defa
29b0: 75 6c 74 20 53 51 4c 69 74 65 20 65 6e 67 69 6e  ult SQLite engin
29c0: 65 2e 3c 2f 6c 69 3e 3c 6c 69 3e 41 64 64 65 64  e.</li><li>Added
29d0: 20 73 65 76 65 72 61 6c 20 61 6c 74 65 72 6e 61   several alterna
29e0: 74 65 20 49 53 4f 38 36 30 31 20 64 61 74 65 2f  te ISO8601 date/
29f0: 74 69 6d 65 20 66 6f 72 6d 61 74 73 20 74 6f 20  time formats to 
2a00: 53 51 4c 69 74 65 43 6f 6e 76 65 72 74 2e 63 73  SQLiteConvert.cs
2a10: 20 74 6f 20 69 6e 63 72 65 61 73 65 0a 20 20 20   to increase.   
2a20: 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 2e 3c   compatibility.<
2a30: 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 6c 69 3e 52  /li>.      <li>R
2a40: 65 6c 61 78 65 64 20 63 6f 65 72 73 69 6f 6e 20  elaxed coersion 
2a50: 72 65 73 74 72 69 63 74 69 6f 6e 73 20 74 6f 20  restrictions to 
2a60: 77 6f 72 6b 20 62 65 74 74 65 72 20 77 69 74 68  work better with
2a70: 20 53 51 4c 69 74 65 27 73 20 69 6e 68 65 72 65   SQLite's inhere
2a80: 6e 74 20 74 79 70 65 6c 65 73 73 6e 65 73 73 2e  nt typelessness.
2a90: 26 6e 62 73 70 3b 3c 2f 6c 69 3e 0a 20 20 20 20  &nbsp;</li>.    
2aa0: 3c 2f 75 6c 3e 0a 20 20 20 20 3c 70 3e 3c 62 3e  </ul>.    <p><b>
2ab0: 31 2e 30 2e 32 32 20 2d 20 4e 6f 76 65 6d 62 65  1.0.22 - Novembe
2ac0: 72 20 31 31 2c 20 32 30 30 35 3c 2f 62 3e 3c 2f  r 11, 2005</b></
2ad0: 70 3e 0a 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20  p>.    <ul>.    
2ae0: 3c 6c 69 3e 46 69 78 65 64 20 73 6f 6d 65 20 67  <li>Fixed some g
2af0: 6c 6f 62 61 6c 69 7a 61 74 69 6f 6e 20 69 73 73  lobalization iss
2b00: 75 65 73 20 77 68 69 63 68 20 72 65 73 75 6c 74  ues which result
2b10: 65 64 20 69 6e 20 69 6e 63 6f 72 72 65 63 74 20  ed in incorrect 
2b20: 63 61 73 65 2d 69 6e 73 65 6e 73 69 74 69 76 65  case-insensitive
2b30: 20 63 6f 6d 70 61 72 69 73 6f 6e 73 3c 2f 6c 69   comparisons</li
2b40: 3e 0a 20 20 20 20 20 20 3c 6c 69 3e 46 69 78 65  >.      <li>Fixe
2b50: 64 20 61 20 62 75 67 20 69 6e 20 74 68 65 20 72  d a bug in the r
2b60: 6f 75 74 69 6e 65 20 74 68 61 74 20 66 69 6e 64  outine that find
2b70: 73 20 61 6c 6c 20 75 73 65 72 2d 64 65 66 69 6e  s all user-defin
2b80: 65 64 20 66 75 6e 63 74 69 6f 6e 73 20 69 6e 20  ed functions in 
2b90: 61 20 6c 6f 61 64 65 64 20 61 73 73 65 6d 62 6c  a loaded assembl
2ba0: 79 2e 26 6e 62 73 70 3b 0a 20 20 20 20 20 20 20  y.&nbsp;.       
2bb0: 20 49 74 20 77 6f 75 6c 64 20 74 68 72 6f 77 20   It would throw 
2bc0: 61 6e 20 65 78 63 65 70 74 69 6f 6e 20 69 66 20  an exception if 
2bd0: 61 6e 79 20 6f 66 20 74 68 65 20 74 79 70 65 73  any of the types
2be0: 20 69 6e 20 74 68 65 20 61 73 73 65 6d 62 6c 79   in the assembly
2bf0: 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 6c 6f   could not be lo
2c00: 61 64 65 64 2e 26 6e 62 73 70 3b 0a 20 20 20 20  aded.&nbsp;.    
2c10: 20 20 20 20 54 68 65 20 65 78 63 65 70 74 69 6f      The exceptio
2c20: 6e 20 69 73 20 6e 6f 77 20 63 61 75 67 68 74 20  n is now caught 
2c30: 61 6e 64 20 68 61 6e 64 6c 65 64 20 61 70 70 72  and handled appr
2c40: 6f 70 72 69 61 74 65 6c 79 2e 3c 2f 6c 69 3e 0a  opriately.</li>.
2c50: 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 3c 70      </ul>.    <p
2c60: 3e 3c 62 3e 31 2e 30 2e 32 31 20 2d 20 4e 6f 76  ><b>1.0.21 - Nov
2c70: 65 6d 62 65 72 20 34 2c 20 32 30 30 35 3c 2f 62  ember 4, 2005</b
2c80: 3e 3c 2f 70 3e 0a 20 20 20 20 3c 55 4c 3e 0a 20  ></p>.    <UL>. 
2c90: 20 20 20 20 20 3c 6c 69 3e 46 69 78 65 64 20 61       <li>Fixed a
2ca0: 20 64 65 73 69 67 6e 65 72 20 62 75 67 20 77 68   designer bug wh
2cb0: 65 6e 20 63 72 65 61 74 69 6e 67 20 74 79 70 65  en creating type
2cc0: 64 20 64 61 74 61 73 65 74 73 20 77 69 74 68 20  d datasets with 
2cd0: 70 61 72 61 6d 65 74 65 72 69 7a 65 64 20 71 75  parameterized qu
2ce0: 65 72 69 65 73 2e 3c 2f 6c 69 3e 0a 20 20 20 20  eries.</li>.    
2cf0: 20 20 3c 6c 69 3e 54 68 65 20 61 62 6f 76 65 20    <li>The above 
2d00: 66 69 78 20 74 68 65 6e 20 65 78 70 6f 73 65 64  fix then exposed
2d10: 20 61 6e 6f 74 68 65 72 20 62 75 67 20 69 6e 20   another bug in 
2d20: 74 68 65 20 64 61 74 61 72 65 61 64 65 72 27 73  the datareader's
2d30: 20 61 62 69 6c 69 74 79 20 74 6f 20 71 75 65 72   ability to quer
2d40: 79 20 73 63 68 65 6d 61 0a 20 20 20 20 20 20 20  y schema.       
2d50: 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 6f 6e 20   information on 
2d60: 70 61 72 61 6d 65 74 65 72 69 7a 65 64 20 63 6f  parameterized co
2d70: 6d 6d 61 6e 64 73 2c 20 77 68 69 63 68 20 77 61  mmands, which wa
2d80: 73 20 61 6c 73 6f 20 66 69 78 65 64 2e 3c 2f 6c  s also fixed.</l
2d90: 69 3e 0a 20 20 20 20 20 20 3c 6c 69 3e 43 6f 6d  i>.      <li>Com
2da0: 70 69 6c 65 64 20 61 67 61 69 6e 73 74 20 74 68  piled against th
2db0: 65 20 52 54 4d 20 76 65 72 73 69 6f 6e 20 6f 66  e RTM version of
2dc0: 20 56 53 32 30 30 35 2e 3c 2f 6c 69 3e 0a 20 20   VS2005.</li>.  
2dd0: 20 20 20 20 3c 6c 69 3e 52 65 77 72 6f 74 65 20      <li>Rewrote 
2de0: 74 68 65 20 64 65 73 69 67 6e 2d 74 69 6d 65 20  the design-time 
2df0: 69 6e 73 74 61 6c 6c 20 73 63 72 69 70 74 20 74  install script t
2e00: 6f 20 75 73 65 20 74 68 65 20 58 4d 4c 20 44 4f  o use the XML DO
2e10: 4d 20 6f 62 6a 65 63 74 73 20 77 68 65 6e 20 77  M objects when w
2e20: 72 69 74 69 6e 67 0a 20 20 20 20 20 20 20 20 74  riting.        t
2e30: 6f 20 74 68 65 20 6d 61 63 68 69 6e 65 2e 63 6f  o the machine.co
2e40: 6e 66 69 67 20 61 6e 64 20 74 6f 20 61 75 74 6f  nfig and to auto
2e50: 6d 61 74 69 63 61 6c 6c 79 20 72 65 67 69 73 74  matically regist
2e60: 65 72 20 74 68 65 20 44 4c 4c 20 69 6e 20 74 68  er the DLL in th
2e70: 65 20 47 41 43 2e 3c 2f 6c 69 3e 3c 6c 69 3e 4d  e GAC.</li><li>M
2e80: 61 64 65 20 63 68 61 6e 67 65 73 20 74 6f 20 74  ade changes to t
2e90: 68 65 20 61 70 70 2e 63 6f 6e 66 69 67 20 64 65  he app.config de
2ea0: 73 63 72 69 70 74 69 6f 6e 73 20 61 6e 64 20 68  scriptions and h
2eb0: 65 6c 70 20 66 69 6c 65 20 74 6f 20 69 6d 70 72  elp file to impr
2ec0: 6f 76 65 20 76 65 72 73 69 6f 6e 2d 69 6e 64 65  ove version-inde
2ed0: 70 65 6e 64 65 6e 74 0a 20 20 20 20 20 20 20 20  pendent.        
2ee0: 66 61 63 74 6f 72 79 20 73 75 70 70 6f 72 74 2e  factory support.
2ef0: 3c 2f 6c 69 3e 3c 2f 55 4c 3e 0a 20 20 20 20 3c  </li></UL>.    <
2f00: 70 3e 3c 62 3e 31 2e 30 2e 32 30 20 2d 20 4f 63  p><b>1.0.20 - Oc
2f10: 74 6f 62 65 72 20 31 39 2c 20 32 30 30 35 3c 2f  tober 19, 2005</
2f20: 62 3e 3c 2f 70 3e 0a 20 20 20 20 3c 55 4c 3e 0a  b></p>.    <UL>.
2f30: 20 20 20 20 20 20 3c 6c 69 3e 0a 20 20 20 20 20        <li>.     
2f40: 20 20 20 46 69 78 65 64 20 61 20 73 68 6f 72 74     Fixed a short
2f50: 63 75 74 20 69 6e 20 53 51 4c 69 74 65 42 61 73  cut in SQLiteBas
2f60: 65 2e 47 65 74 56 61 6c 75 65 20 77 68 69 63 68  e.GetValue which
2f70: 20 77 61 73 20 69 6e 73 75 66 66 69 63 69 65 6e   was insufficien
2f80: 74 20 66 6f 72 20 0a 20 20 20 20 20 20 20 20 69  t for .        i
2f90: 6e 74 65 72 6e 61 74 69 6f 6e 61 6c 20 65 6e 76  nternational env
2fa0: 69 72 6f 6e 6d 65 6e 74 73 2e 26 6e 62 73 70 3b  ironments.&nbsp;
2fb0: 20 54 68 65 20 73 68 6f 72 74 63 75 74 20 77 61   The shortcut wa
2fc0: 73 20 72 65 6d 6f 76 65 64 20 61 6e 64 20 74 68  s removed and th
2fd0: 65 20 22 70 72 6f 70 65 72 22 20 0a 20 20 20 20  e "proper" .    
2fe0: 20 20 20 20 70 72 6f 63 65 64 75 72 65 20 70 75      procedure pu
2ff0: 74 20 69 6e 2e 3c 2f 6c 69 3e 3c 2f 55 4c 3e 0a  t in.</li></UL>.
3000: 20 20 20 20 3c 70 3e 3c 62 3e 31 2e 30 2e 31 39      <p><b>1.0.19
3010: 20 2d 20 4f 63 74 6f 62 65 72 20 35 2c 20 32 30   - October 5, 20
3020: 30 35 3c 2f 62 3e 3c 2f 70 3e 0a 20 20 20 20 3c  05</b></p>.    <
3030: 55 4c 3e 0a 20 20 20 20 20 20 3c 6c 69 3e 0a 20  UL>.      <li>. 
3040: 20 20 20 20 20 43 6f 64 65 20 6d 65 72 67 65 20       Code merge 
3050: 77 69 74 68 20 53 51 4c 69 74 65 20 33 2e 32 2e  with SQLite 3.2.
3060: 37 0a 20 20 20 20 20 20 3c 4c 49 3e 0a 20 20 20  7.      <LI>.   
3070: 20 20 20 46 69 78 65 64 20 62 75 67 73 20 69 6e     Fixed bugs in
3080: 20 74 68 65 20 43 45 20 70 6f 72 74 20 63 6f 64   the CE port cod
3090: 65 20 28 6f 73 5f 77 69 6e 63 65 2e 63 29 26 6e  e (os_wince.c)&n
30a0: 62 73 70 3b 77 68 69 63 68 20 77 65 72 65 20 62  bsp;which were b
30b0: 72 6f 75 67 68 74 20 74 6f 20 0a 20 20 20 20 20  rought to .     
30c0: 20 6c 69 67 68 74 26 6e 62 73 70 3b 62 79 26 6e   light&nbsp;by&n
30d0: 62 73 70 3b 72 65 63 65 6e 74 20 63 68 61 6e 67  bsp;recent chang
30e0: 65 73 20 69 6e 20 74 68 65 20 53 51 4c 69 74 65  es in the SQLite
30f0: 20 65 6e 67 69 6e 65 2e 0a 20 20 20 20 20 20 3c   engine..      <
3100: 4c 49 3e 0a 20 20 20 20 20 20 20 20 52 65 63 6f  LI>.        Reco
3110: 6d 70 69 6c 65 64 20 61 6e 64 20 6d 6f 64 69 66  mpiled and modif
3120: 69 65 64 20 74 6f 20 62 65 20 63 6f 6d 70 61 74  ied to be compat
3130: 69 62 6c 65 20 77 69 74 68 20 74 68 65 20 53 65  ible with the Se
3140: 70 74 65 6d 62 65 72 20 56 53 32 30 30 35 20 52  ptember VS2005 R
3150: 65 6c 65 61 73 65 20 0a 20 20 20 20 20 20 20 20  elease .        
3160: 43 61 6e 64 69 64 61 74 65 2e 3c 62 72 3e 0a 20  Candidate.<br>. 
3170: 20 20 20 20 20 20 20 42 65 74 61 20 32 20 75 73         Beta 2 us
3180: 65 72 73 20 73 68 6f 75 6c 64 20 63 6f 6e 74 69  ers should conti
3190: 6e 75 65 20 74 6f 20 75 73 65 20 31 2e 30 2e 31  nue to use 1.0.1
31a0: 38 2e 31 3c 2f 4c 49 3e 3c 2f 55 4c 3e 0a 20 20  8.1</LI></UL>.  
31b0: 20 20 3c 70 3e 3c 62 3e 31 2e 30 2e 31 38 2e 31    <p><b>1.0.18.1
31c0: 20 2d 20 53 65 70 74 65 6d 62 65 72 20 31 39 2c   - September 19,
31d0: 20 32 30 30 35 3c 2f 62 3e 3c 2f 70 3e 0a 20 20   2005</b></p>.  
31e0: 20 20 3c 55 4c 3e 0a 20 20 20 20 20 20 3c 6c 69    <UL>.      <li
31f0: 3e 0a 20 20 20 20 20 20 20 20 43 6f 64 65 20 6d  >.        Code m
3200: 65 72 67 65 20 77 69 74 68 20 53 51 4c 69 74 65  erge with SQLite
3210: 20 33 2e 32 2e 36 3c 2f 6c 69 3e 3c 2f 55 4c 3e   3.2.6</li></UL>
3220: 0a 20 20 20 20 3c 70 3e 3c 62 3e 31 2e 30 2e 31  .    <p><b>1.0.1
3230: 38 20 2d 20 53 65 70 74 65 6d 62 65 72 20 31 2c  8 - September 1,
3240: 20 32 30 30 35 3c 2f 62 3e 3c 2f 70 3e 0a 20 20   2005</b></p>.  
3250: 20 20 3c 55 4c 3e 0a 20 20 20 20 20 20 3c 6c 69    <UL>.      <li
3260: 3e 0a 20 20 20 20 20 20 20 20 41 64 64 65 64 20  >.        Added 
3270: 74 79 70 65 2d 73 70 65 63 69 66 69 63 20 6d 65  type-specific me
3280: 74 68 6f 64 20 63 61 6c 6c 73 20 77 68 65 6e 20  thod calls when 
3290: 75 73 69 6e 67 20 74 68 65 20 76 61 72 69 6f 75  using the variou
32a0: 73 20 53 51 4c 69 74 65 20 63 6c 61 73 73 65 73  s SQLite classes
32b0: 20 74 68 61 74 20 0a 20 20 20 20 20 20 20 20 77   that .        w
32c0: 6f 75 6c 64 27 76 65 20 6e 6f 72 6d 61 6c 6c 79  ould've normally
32d0: 20 72 65 74 75 72 6e 65 64 20 61 20 61 20 67 65   returned a a ge
32e0: 6e 65 72 69 63 20 44 62 20 62 61 73 65 20 63 6c  neric Db base cl
32f0: 61 73 73 2c 20 77 68 69 63 68 20 61 6c 69 67 6e  ass, which align
3300: 73 20 74 68 65 20 63 6f 64 65 20 0a 20 20 20 20  s the code .    
3310: 20 20 20 20 62 65 74 74 65 72 20 77 69 74 68 20      better with 
3320: 74 68 65 20 4d 69 63 72 6f 73 6f 66 74 2d 73 75  the Microsoft-su
3330: 70 70 6c 69 65 64 20 64 61 74 61 20 70 72 6f 76  pplied data prov
3340: 69 64 65 72 73 2e 3c 2f 6c 69 3e 3c 2f 55 4c 3e  iders.</li></UL>
3350: 0a 20 20 20 20 3c 70 3e 3c 62 3e 31 2e 30 2e 31  .    <p><b>1.0.1
3360: 37 20 2d 20 41 75 67 75 73 74 20 32 36 2c 20 32  7 - August 26, 2
3370: 30 30 35 3c 2f 62 3e 3c 2f 70 3e 0a 20 20 20 20  005</b></p>.    
3380: 3c 75 6c 3e 0a 20 20 20 20 20 20 3c 6c 69 3e 0a  <ul>.      <li>.
3390: 20 20 20 20 20 20 43 6f 64 65 20 6d 65 72 67 65        Code merge
33a0: 20 77 69 74 68 20 53 51 4c 69 74 65 20 33 2e 32   with SQLite 3.2
33b0: 2e 35 0a 20 20 20 20 20 20 3c 6c 69 3e 0a 20 20  .5.      <li>.  
33c0: 20 20 20 20 41 64 64 65 64 20 49 74 61 6e 69 75      Added Itaniu
33d0: 6d 20 61 6e 64 20 78 36 34 20 62 75 69 6c 64 20  m and x64 build 
33e0: 73 65 74 74 69 6e 67 73 20 74 6f 20 74 68 65 20  settings to the 
33f0: 70 72 6f 6a 65 63 74 20 28 6e 65 65 64 73 20 74  project (needs t
3400: 65 73 74 69 6e 67 29 0a 20 20 20 20 20 20 3c 6c  esting).      <l
3410: 69 3e 0a 20 20 20 20 20 20 42 75 67 66 69 78 65  i>.      Bugfixe
3420: 73 20 61 6e 64 20 65 6e 68 61 6e 63 65 6d 65 6e  s and enhancemen
3430: 74 73 20 74 6f 20 73 65 76 65 72 61 6c 20 73 63  ts to several sc
3440: 68 65 6d 61 20 74 79 70 65 73 0a 20 20 20 20 20  hema types.     
3450: 20 3c 6c 69 3e 0a 20 20 20 20 20 20 41 64 64 69   <li>.      Addi
3460: 74 69 6f 6e 61 6c 20 64 65 73 69 67 6e 2d 74 69  tional design-ti
3470: 6d 65 20 73 75 70 70 6f 72 74 20 74 6f 20 69 6e  me support to in
3480: 63 6c 75 64 65 20 69 6e 64 65 78 20 61 6e 64 20  clude index and 
3490: 66 6f 72 65 69 67 6e 20 6b 65 79 20 0a 20 20 20  foreign key .   
34a0: 20 20 20 65 6e 75 6d 65 72 61 74 69 6f 6e 73 2e     enumerations.
34b0: 26 6e 62 73 70 3b 20 52 65 71 75 69 72 65 73 20  &nbsp; Requires 
34c0: 72 65 2d 72 65 67 69 73 74 65 72 69 6e 67 20 74  re-registering t
34d0: 68 65 20 64 65 73 69 67 6e 65 72 20 75 73 69 6e  he designer usin
34e0: 67 20 0a 20 20 20 20 20 20 49 4e 53 54 41 4c 4c  g .      INSTALL
34f0: 2e 43 4d 44 2e 26 6e 62 73 70 3b 20 54 68 65 20  .CMD.&nbsp; The 
3500: 6e 65 77 20 64 65 73 69 67 6e 65 72 20 63 6f 64  new designer cod
3510: 65 20 6e 6f 77 20 61 6c 6c 6f 77 73 20 74 68 65  e now allows the
3520: 20 56 53 20 71 75 65 72 79 20 64 65 73 69 67 6e   VS query design
3530: 65 72 20 61 6e 64 20 0a 20 20 20 20 20 20 74 79  er and .      ty
3540: 70 65 64 20 64 61 74 61 73 65 74 73 20 74 6f 20  ped datasets to 
3550: 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 6c 69  automatically li
3560: 6e 6b 20 75 70 20 66 6f 72 65 69 67 6e 20 6b 65  nk up foreign ke
3570: 79 73 2c 20 75 73 65 20 69 6e 64 65 78 65 73 2c  ys, use indexes,
3580: 20 61 6e 64 20 0a 20 20 20 20 20 20 61 75 74 6f   and .      auto
3590: 6d 61 74 69 63 61 6c 6c 79 20 67 65 6e 65 72 61  matically genera
35a0: 74 65 20 72 65 6c 61 74 69 6f 6e 73 68 69 70 73  te relationships
35b0: 20 66 72 6f 6d 20 74 68 65 20 73 63 68 65 6d 61   from the schema
35c0: 2e 3c 6c 69 3e 0a 20 20 20 20 20 20 20 20 41 64  .<li>.        Ad
35d0: 64 69 74 69 6f 6e 61 6c 20 73 74 61 74 69 63 20  ditional static 
35e0: 6d 65 74 68 6f 64 73 20 6f 6e 20 53 51 4c 69 74  methods on SQLit
35f0: 65 43 6f 6e 6e 65 63 74 69 6f 6e 20 74 6f 20 63  eConnection to c
3600: 72 65 61 74 65 20 61 20 64 61 74 61 62 61 73 65  reate a database
3610: 20 66 69 6c 65 2c 20 0a 20 20 20 20 20 20 20 20   file, .        
3620: 65 6e 63 72 79 70 74 20 61 20 66 69 6c 65 20 75  encrypt a file u
3630: 73 69 6e 67 20 74 68 65 20 45 6e 63 72 79 70 74  sing the Encrypt
3640: 65 64 20 46 69 6c 65 20 53 79 73 74 65 6d 20 28  ed File System (
3650: 45 46 53 29 20 6f 6e 20 4e 54 46 53 20 28 72 65  EFS) on NTFS (re
3660: 71 75 69 72 65 73 20 4e 54 20 32 4b 20 6f 72 20  quires NT 2K or 
3670: 0a 20 20 20 20 20 20 20 20 61 62 6f 76 65 29 20  .        above) 
3680: 61 6e 64 20 4e 54 46 53 20 66 69 6c 65 20 63 6f  and NTFS file co
3690: 6d 70 72 65 73 73 69 6f 6e 3c 2f 6c 69 3e 0a 20  mpression</li>. 
36a0: 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 3c 70 3e     </ul>.    <p>
36b0: 3c 62 3e 31 2e 30 2e 31 36 20 2d 20 41 75 67 75  <b>1.0.16 - Augu
36c0: 73 74 20 32 34 2c 20 32 30 30 35 3c 2f 62 3e 3c  st 24, 2005</b><
36d0: 2f 70 3e 0a 20 20 20 20 3c 75 6c 3e 0a 20 20 20  /p>.    <ul>.   
36e0: 20 20 20 3c 6c 69 3e 0a 20 20 20 20 20 20 43 6f     <li>.      Co
36f0: 64 65 20 6d 65 72 67 65 20 77 69 74 68 20 53 51  de merge with SQ
3700: 4c 69 74 65 20 33 2e 32 2e 34 20 77 69 74 68 20  Lite 3.2.4 with 
3710: 74 68 65 20 6c 61 72 67 65 20 64 65 6c 65 74 65  the large delete
3720: 20 62 75 67 66 69 78 20 69 6e 20 43 56 53 20 28   bugfix in CVS (
3730: 77 68 69 63 68 20 77 69 6c 6c 20 0a 20 20 20 20  which will .    
3740: 20 20 62 65 63 6f 6d 65 20 33 2e 32 2e 35 20 73    become 3.2.5 s
3750: 6f 6f 6e 29 0a 20 20 20 20 20 20 3c 6c 69 3e 0a  oon).      <li>.
3760: 20 20 20 20 20 20 20 20 41 64 64 65 64 20 6e 65          Added ne
3770: 77 20 47 65 74 53 63 68 65 6d 61 28 29 20 74 79  w GetSchema() ty
3780: 70 65 73 3a 20 49 6e 64 65 78 43 6f 6c 75 6d 6e  pes: IndexColumn
3790: 73 2c 20 56 69 65 77 43 6f 6c 75 6d 6e 73 2c 20  s, ViewColumns, 
37a0: 46 6f 72 65 69 67 6e 4b 65 79 73 3c 2f 6c 69 3e  ForeignKeys</li>
37b0: 0a 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 3c  .    </ul>.    <
37c0: 70 3e 3c 62 3e 31 2e 30 2e 31 35 20 2d 20 41 75  p><b>1.0.15 - Au
37d0: 67 75 73 74 20 32 32 2c 20 32 30 30 35 3c 2f 62  gust 22, 2005</b
37e0: 3e 3c 62 72 3e 0a 20 20 20 20 3c 2f 70 3e 0a 20  ><br>.    </p>. 
37f0: 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 3c 6c     <ul>.      <l
3800: 69 3e 0a 20 20 20 20 20 20 43 6f 64 65 20 6d 65  i>.      Code me
3810: 72 67 65 20 77 69 74 68 20 53 51 4c 69 74 65 20  rge with SQLite 
3820: 33 2e 32 2e 33 0a 20 20 20 20 20 20 3c 4c 49 3e  3.2.3.      <LI>
3830: 0a 20 20 20 20 20 20 20 20 4d 69 6e 6f 72 20 75  .        Minor u
3840: 70 64 61 74 65 73 20 66 6f 72 20 62 65 74 74 65  pdates for bette
3850: 72 20 64 65 73 69 67 6e 2d 74 69 6d 65 20 65 78  r design-time ex
3860: 70 65 72 69 65 6e 63 65 2e 20 4d 6f 72 65 20 64  perience. More d
3870: 65 73 69 67 6e 2d 74 69 6d 65 20 63 6f 64 65 20  esign-time code 
3880: 74 6f 20 0a 20 20 20 20 20 20 20 20 66 6f 6c 6c  to .        foll
3890: 6f 77 20 69 6e 20 73 75 62 73 65 71 75 65 6e 74  ow in subsequent
38a0: 20 72 65 6c 65 61 73 65 73 2e 3c 2f 4c 49 3e 0a   releases.</LI>.
38b0: 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 3c 70      </ul>.    <p
38c0: 3e 3c 62 3e 31 2e 30 2e 31 34 20 2d 20 41 75 67  ><b>1.0.14 - Aug
38d0: 75 73 74 20 31 36 2c 20 32 30 30 35 3c 2f 62 3e  ust 16, 2005</b>
38e0: 3c 62 72 3e 0a 20 20 20 20 3c 2f 70 3e 0a 20 20  <br>.    </p>.  
38f0: 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 3c 6c 69    <ul>.      <li
3900: 3e 0a 20 20 20 20 20 20 46 69 78 65 64 20 61 20  >.      Fixed a 
3910: 62 75 67 20 69 6e 20 74 68 65 20 53 51 4c 69 74  bug in the SQLit
3920: 65 44 61 74 61 41 64 61 70 74 65 72 20 64 75 65  eDataAdapter due
3930: 20 74 6f 20 69 6e 73 75 66 66 69 63 69 65 6e 74   to insufficient
3940: 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20   implementation 
3950: 6f 66 20 74 68 65 20 0a 20 20 20 20 20 20 63 6c  of the .      cl
3960: 61 73 73 2e 26 6e 62 73 70 3b 20 54 68 65 20 52  ass.&nbsp; The R
3970: 6f 77 55 70 64 61 74 69 6e 67 20 61 6e 64 20 52  owUpdating and R
3980: 6f 77 55 70 64 61 74 65 64 20 65 76 65 6e 74 73  owUpdated events
3990: 20 61 72 65 20 6e 6f 77 20 70 72 6f 70 65 72 6c   are now properl
39a0: 79 20 0a 20 20 20 20 20 20 69 6d 70 6c 65 6d 65  y .      impleme
39b0: 6e 74 65 64 2c 20 62 75 74 20 75 6e 66 6f 72 74  nted, but unfort
39c0: 75 6e 61 74 65 6c 79 20 69 6e 73 65 72 74 69 6e  unately insertin
39d0: 67 20 61 6e 64 20 75 70 64 61 74 69 6e 67 20 64  g and updating d
39e0: 61 74 61 20 69 6e 20 61 20 44 61 74 61 54 61 62  ata in a DataTab
39f0: 6c 65 20 6f 72 20 0a 20 20 20 20 20 20 44 61 74  le or .      Dat
3a00: 61 53 65 74 20 69 73 20 6e 6f 77 20 6d 75 63 68  aSet is now much
3a10: 20 73 6c 6f 77 65 72 2e 26 6e 62 73 70 3b 20 54   slower.&nbsp; T
3a20: 68 69 73 20 69 73 20 74 68 65 20 70 72 6f 70 65  his is the prope
3a30: 72 20 64 65 73 69 67 6e 20 68 6f 77 65 76 65 72  r design however
3a40: 2c 20 73 6f 20 74 68 65 20 0a 20 20 20 20 20 20  , so the .      
3a50: 63 68 61 6e 67 65 73 20 61 72 65 20 68 65 72 65  changes are here
3a60: 20 74 6f 20 73 74 61 79 2e 0a 20 20 20 20 20 20   to stay..      
3a70: 3c 4c 49 3e 0a 20 20 20 20 20 20 4c 6f 74 73 20  <LI>.      Lots 
3a80: 6f 66 20 73 63 68 65 6d 61 20 63 68 61 6e 67 65  of schema change
3a90: 73 20 74 6f 20 73 75 70 70 6f 72 74 20 56 69 73  s to support Vis
3aa0: 75 61 6c 20 53 74 75 64 69 6f 27 73 20 44 61 74  ual Studio's Dat
3ab0: 61 20 44 65 73 69 67 6e 65 72 20 61 72 63 68 69  a Designer archi
3ac0: 74 65 63 74 75 72 65 2e 3c 6c 69 3e 41 64 64 65  tecture.<li>Adde
3ad0: 64 20 0a 20 20 20 20 20 20 20 20 44 65 73 69 67  d .        Desig
3ae0: 6e 65 72 20 73 75 70 70 6f 72 74 20 66 6f 72 20  ner support for 
3af0: 74 68 65 20 70 72 6f 76 69 64 65 72 2e 26 6e 62  the provider.&nb
3b00: 73 70 3b 20 49 74 27 73 20 6e 6f 74 20 31 30 30  sp; It's not 100
3b10: 25 2c 20 62 75 74 20 79 6f 75 20 63 61 6e 20 64  %, but you can d
3b20: 65 73 69 67 6e 20 0a 20 20 20 20 20 20 20 20 71  esign .        q
3b30: 75 65 72 69 65 73 2c 20 61 64 64 20 74 79 70 65  ueries, add type
3b40: 64 20 64 61 74 61 73 65 74 73 20 61 6e 64 20 70  d datasets and p
3b50: 65 72 66 6f 72 6d 20 71 75 69 74 65 20 61 20 6e  erform quite a n
3b60: 75 6d 62 65 72 20 6f 66 20 74 61 73 6b 73 20 61  umber of tasks a
3b70: 6c 6c 20 77 69 74 68 69 6e 20 0a 20 20 20 20 20  ll within .     
3b80: 20 20 20 56 69 73 75 61 6c 20 53 74 75 64 69 6f     Visual Studio
3b90: 20 6e 6f 77 2e 3c 2f 6c 69 3e 3c 2f 75 6c 3e 0a   now.</li></ul>.
3ba0: 20 20 20 20 3c 50 3e 3c 42 3e 31 2e 30 2e 31 33      <P><B>1.0.13
3bb0: 20 2d 20 41 75 67 75 73 74 20 38 2c 20 32 30 30   - August 8, 200
3bc0: 35 3c 2f 42 3e 3c 42 52 3e 0a 20 20 20 20 3c 2f  5</B><BR>.    </
3bd0: 50 3e 0a 20 20 20 20 3c 44 49 56 3e 0a 20 20 20  P>.    <DIV>.   
3be0: 20 20 20 3c 55 4c 3e 0a 20 20 20 20 20 20 20 20     <UL>.        
3bf0: 3c 4c 49 3e 0a 20 20 20 20 20 20 20 20 46 69 78  <LI>.        Fix
3c00: 65 64 20 61 20 6e 61 6d 65 64 20 70 61 72 61 6d  ed a named param
3c10: 65 74 65 72 20 62 75 67 20 69 6e 20 74 68 65 20  eter bug in the 
3c20: 62 61 73 65 20 53 51 4c 69 74 65 5f 55 54 46 31  base SQLite_UTF1
3c30: 36 20 63 6c 61 73 73 2c 20 77 68 69 63 68 20 6f  6 class, which o
3c40: 66 20 63 6f 75 72 73 65 20 0a 20 20 20 20 20 20  f course .      
3c50: 20 20 6f 6e 6c 79 20 73 68 6f 77 65 64 20 75 70    only showed up
3c60: 20 77 68 65 6e 20 61 20 64 61 74 61 62 61 73 65   when a database
3c70: 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 77 61 73 20   connection was 
3c80: 6f 70 65 6e 65 64 20 75 73 69 6e 67 20 74 68 65  opened using the
3c90: 20 0a 20 20 20 20 20 20 20 20 55 73 65 55 54 46   .        UseUTF
3ca0: 31 36 45 6e 63 6f 64 69 6e 67 3d 54 72 75 65 20  16Encoding=True 
3cb0: 70 61 72 61 6d 65 74 65 72 2e 0a 20 20 20 20 20  parameter..     
3cc0: 20 20 20 3c 4c 49 3e 0a 20 20 20 20 20 20 20 20     <LI>.        
3cd0: 20 20 46 69 78 65 64 20 61 20 70 65 72 66 6f 72    Fixed a perfor
3ce0: 6d 61 6e 63 65 20 69 73 73 75 65 20 69 6e 20 53  mance issue in S
3cf0: 51 4c 69 74 65 5f 55 54 46 31 36 20 69 6e 76 6f  QLite_UTF16 invo
3d00: 6c 76 69 6e 67 20 73 74 72 69 6e 67 20 6d 61 72  lving string mar
3d10: 73 68 61 6c 69 6e 67 2e 3c 2f 4c 49 3e 3c 2f 55  shaling.</LI></U
3d20: 4c 3e 0a 20 20 20 20 3c 2f 44 49 56 3e 0a 20 20  L>.    </DIV>.  
3d30: 20 20 3c 50 3e 3c 42 3e 31 2e 30 2e 31 32 20 2d    <P><B>1.0.12 -
3d40: 20 41 75 67 75 73 74 20 35 2c 20 32 30 30 35 3c   August 5, 2005<
3d50: 2f 42 3e 3c 42 52 3e 0a 20 20 20 20 3c 2f 50 3e  /B><BR>.    </P>
3d60: 0a 20 20 20 20 3c 44 49 56 3e 0a 20 20 20 20 20  .    <DIV>.     
3d70: 20 3c 55 4c 3e 0a 20 20 20 20 20 20 20 20 3c 4c   <UL>.        <L
3d80: 49 3e 0a 20 20 20 20 20 20 20 20 20 20 46 75 6c  I>.          Ful
3d90: 6c 20 73 75 70 70 6f 72 74 20 66 6f 72 20 74 68  l support for th
3da0: 65 20 43 6f 6d 70 61 63 74 20 46 72 61 6d 65 77  e Compact Framew
3db0: 6f 72 6b 2e 26 6e 62 73 70 3b 20 45 61 63 68 20  ork.&nbsp; Each 
3dc0: 62 75 69 6c 64 20 28 44 65 62 75 67 2f 52 65 6c  build (Debug/Rel
3dd0: 65 61 73 65 29 20 6e 6f 77 20 0a 20 20 20 20 20  ease) now .     
3de0: 20 20 20 20 20 68 61 73 20 61 26 6e 62 73 70 3b       has a&nbsp;
3df0: 70 6c 61 74 66 6f 72 6d 2c 20 65 69 74 68 65 72  platform, either
3e00: 20 57 69 6e 33 32 20 6f 72 20 43 6f 6d 70 61 63   Win32 or Compac
3e10: 74 20 46 72 61 6d 65 77 6f 72 6b 2e 26 6e 62 73  t Framework.&nbs
3e20: 70 3b 20 54 68 65 20 63 6f 72 72 65 63 74 20 0a  p; The correct .
3e30: 20 20 20 20 20 20 20 20 20 20 70 72 6f 6a 65 63            projec
3e40: 74 73 20 61 72 65 20 62 75 69 6c 74 20 61 63 63  ts are built acc
3e50: 6f 72 64 69 6e 67 6c 79 2e 26 6e 62 73 70 3b 20  ordingly.&nbsp; 
3e60: 53 65 65 20 74 68 65 26 6e 62 73 70 3b 3c 41 20  See the&nbsp;<A 
3e70: 68 72 65 66 3d 22 23 72 65 64 69 73 74 22 3e 44  href="#redist">D
3e80: 69 73 74 72 69 62 75 74 69 6e 67 20 0a 20 20 20  istributing .   
3e90: 20 20 20 20 20 20 20 20 20 53 51 4c 69 74 65 3c           SQLite<
3ea0: 2f 41 3e 0a 20 20 20 20 20 20 20 20 73 65 63 74  /A>.        sect
3eb0: 69 6f 6e 20 66 6f 72 20 69 6e 66 6f 72 6d 61 74  ion for informat
3ec0: 69 6f 6e 20 6f 6e 20 77 68 61 74 20 66 69 6c 65  ion on what file
3ed0: 73 20 6e 65 65 64 20 74 6f 20 62 65 20 64 69 73  s need to be dis
3ee0: 74 72 69 62 75 74 65 64 20 66 6f 72 20 65 61 63  tributed for eac
3ef0: 68 20 0a 20 20 20 20 20 20 20 20 70 6c 61 74 66  h .        platf
3f00: 6f 72 6d 2e 26 6e 62 73 70 3b 0a 20 20 20 20 20  orm.&nbsp;.     
3f10: 20 20 20 3c 4c 49 3e 0a 20 20 20 20 20 20 20 20     <LI>.        
3f20: 4d 6f 64 69 66 69 65 64 20 53 51 4c 69 74 65 33  Modified SQLite3
3f30: 2e 52 65 73 65 74 28 29 20 61 6e 64 20 53 74 65  .Reset() and Ste
3f40: 70 28 29 20 66 75 6e 63 74 69 6f 6e 73 20 74 6f  p() functions to
3f50: 20 74 72 61 6e 73 70 61 72 65 6e 74 6c 79 20 68   transparently h
3f60: 61 6e 64 6c 65 20 74 69 6d 65 6f 75 74 73 20 0a  andle timeouts .
3f70: 20 20 20 20 20 20 20 20 77 68 69 6c 65 20 77 61          while wa
3f80: 69 74 69 6e 67 20 6f 6e 20 74 68 65 20 64 61 74  iting on the dat
3f90: 61 62 61 73 65 20 74 6f 20 62 65 63 6f 6d 65 20  abase to become 
3fa0: 61 76 61 69 6c 61 62 6c 65 20 28 74 79 70 69 63  available (typic
3fb0: 61 6c 6c 79 20 77 68 65 6e 20 61 20 77 72 69 74  ally when a writ
3fc0: 65 72 20 69 73 20 0a 20 20 20 20 20 20 20 20 77  er is .        w
3fd0: 61 69 74 69 6e 67 20 6f 6e 20 61 20 72 65 61 64  aiting on a read
3fe0: 65 72 20 74 6f 20 66 69 6e 69 73 68 2c 20 6f 72  er to finish, or
3ff0: 20 61 20 72 65 61 64 65 72 20 69 73 20 77 61 69   a reader is wai
4000: 74 69 6e 67 20 6f 6e 20 61 20 77 72 69 74 65 72  ting on a writer
4010: 20 74 6f 20 66 69 6e 69 73 68 29 2e 0a 20 20 20   to finish)..   
4020: 20 20 20 20 20 3c 4c 49 3e 0a 20 20 20 20 20 20       <LI>.      
4030: 20 20 4c 6f 74 73 20 6f 66 20 63 6f 64 65 20 63    Lots of code c
4040: 6c 65 61 6e 75 70 26 6e 62 73 70 3b 61 73 20 73  leanup&nbsp;as s
4050: 75 67 67 65 73 74 65 64 26 6e 62 73 70 3b 62 79  uggested&nbsp;by
4060: 20 74 68 65 20 43 6f 64 65 20 41 6e 61 6c 79 7a   the Code Analyz
4070: 65 72 20 28 46 78 43 6f 70 29 2e 0a 20 20 20 20  er (FxCop)..    
4080: 20 20 20 20 3c 4c 49 3e 0a 20 20 20 20 20 20 20      <LI>.       
4090: 20 4c 6f 74 73 20 6f 66 20 75 70 64 61 74 65 73   Lots of updates
40a0: 20 74 6f 20 74 68 65 20 68 65 6c 70 66 69 6c 65   to the helpfile
40b0: 20 28 61 73 20 79 6f 75 20 63 61 6e 20 73 65 65   (as you can see
40c0: 29 2e 0a 20 20 20 20 20 20 20 20 3c 4c 49 3e 0a  )..        <LI>.
40d0: 20 20 20 20 20 20 20 20 20 20 53 74 61 74 65 6d            Statem
40e0: 65 6e 74 73 26 6e 62 73 70 3b 77 65 72 65 20 61  ents&nbsp;were a
40f0: 6c 72 65 61 64 79 20 70 72 65 70 61 72 65 64 20  lready prepared 
4100: 6c 61 7a 69 6c 79 26 6e 62 73 70 3b 69 6e 20 61  lazily&nbsp;in a
4110: 20 53 51 4c 69 74 65 43 6f 6d 6d 61 6e 64 2c 20   SQLiteCommand, 
4120: 62 75 74 20 6e 6f 77 20 0a 20 20 20 20 20 20 20  but now .       
4130: 20 20 20 69 74 73 20 65 76 65 6e 20 6d 6f 72 65     its even more
4140: 20 6c 61 7a 79 2e 26 6e 62 73 70 3b 20 53 74 61   lazy.&nbsp; Sta
4150: 74 65 6d 65 6e 74 73 20 61 72 65 20 6e 6f 77 20  tements are now 
4160: 6f 6e 6c 79 20 70 72 65 70 61 72 65 64 20 69 66  only prepared if
4170: 20 74 68 65 20 73 74 61 74 65 6d 65 6e 74 73 20   the statements 
4180: 0a 20 20 20 20 20 20 20 20 20 20 68 61 76 65 6e  .          haven
4190: 27 74 20 62 65 65 6e 20 70 72 65 76 69 6f 75 73  't been previous
41a0: 6c 79 20 70 72 65 70 61 72 65 64 20 61 6e 64 20  ly prepared and 
41b0: 61 20 50 72 65 70 61 72 65 28 29 20 66 75 6e 63  a Prepare() func
41c0: 74 69 6f 6e 20 69 73 20 63 61 6c 6c 65 64 20 28  tion is called (
41d0: 61 6e 64 20 74 68 65 20 0a 20 20 20 20 20 20 20  and the .       
41e0: 20 20 20 63 6f 6d 6d 61 6e 64 20 69 73 20 61 73     command is as
41f0: 73 6f 63 69 61 74 65 64 20 77 69 74 68 20 61 20  sociated with a 
4200: 63 6f 6e 6e 65 63 74 69 6f 6e 29 20 6f 72 20 6a  connection) or j
4210: 75 73 74 20 70 72 69 6f 72 20 74 6f 20 74 68 65  ust prior to the
4220: 20 63 6f 6d 6d 61 6e 64 20 62 65 69 6e 67 20 0a   command being .
4230: 20 20 20 20 20 20 20 20 20 20 65 78 65 63 75 74            execut
4240: 65 64 2e 26 6e 62 73 70 3b 3c 2f 4c 49 3e 3c 2f  ed.&nbsp;</LI></
4250: 55 4c 3e 0a 20 20 20 20 3c 2f 44 49 56 3e 0a 20  UL>.    </DIV>. 
4260: 20 20 20 3c 50 3e 3c 42 3e 31 2e 30 2e 31 31 20     <P><B>1.0.11 
4270: 2d 20 41 75 67 75 73 74 20 31 2c 20 32 30 30 35  - August 1, 2005
4280: 3c 2f 42 3e 3c 42 52 3e 0a 20 20 20 20 3c 2f 50  </B><BR>.    </P
4290: 3e 0a 20 20 20 20 3c 55 4c 3e 0a 20 20 20 20 20  >.    <UL>.     
42a0: 20 3c 4c 49 3e 0a 20 20 20 20 20 20 20 20 3c 53   <LI>.        <S
42b0: 54 52 4f 4e 47 3e 46 6f 72 20 65 76 65 72 79 74  TRONG>For everyt
42c0: 68 69 6e 67 20 65 78 63 65 70 74 20 74 68 65 20  hing except the 
42d0: 43 6f 6d 70 61 63 74 20 46 72 61 6d 65 77 6f 72  Compact Framewor
42e0: 6b 2c 20 53 79 73 74 65 6d 2e 44 61 74 61 2e 53  k, System.Data.S
42f0: 51 4c 69 74 65 2e 44 4c 4c 20 69 73 20 0a 20 20  QLite.DLL is .  
4300: 20 20 20 20 20 20 20 20 6e 6f 77 20 74 68 65 20          now the 
4310: 3c 45 4d 3e 6f 6e 6c 79 3c 2f 45 4d 3e 20 44 4c  <EM>only</EM> DL
4320: 4c 20 72 65 71 75 69 72 65 64 20 74 6f 20 75 73  L required to us
4330: 65 20 74 68 69 73 20 70 72 6f 76 69 64 65 72 21  e this provider!
4340: 3c 2f 53 54 52 4f 4e 47 3e 26 6e 62 73 70 3b 20  </STRONG>&nbsp; 
4350: 54 68 65 20 0a 20 20 20 20 20 20 61 73 73 65 6d  The .      assem
4360: 62 6c 79 20 69 73 20 6e 6f 77 20 61 20 6d 75 6c  bly is now a mul
4370: 74 69 2d 6d 6f 64 75 6c 65 20 61 73 73 65 6d 62  ti-module assemb
4380: 6c 79 2c 20 63 6f 6e 74 61 69 6e 69 6e 67 20 62  ly, containing b
4390: 6f 74 68 20 74 68 65 20 6e 61 74 69 76 65 20 53  oth the native S
43a0: 51 4c 69 74 65 33 20 0a 20 20 20 20 20 20 63 6f  QLite3 .      co
43b0: 64 65 62 61 73 65 20 61 6e 64 20 74 68 65 20 43  debase and the C
43c0: 23 20 63 6c 61 73 73 65 73 20 62 75 69 6c 74 20  # classes built 
43d0: 6f 6e 20 74 6f 70 20 6f 66 20 69 74 2e 26 6e 62  on top of it.&nb
43e0: 73 70 3b 20 54 68 65 20 43 6f 6d 70 61 63 74 20  sp; The Compact 
43f0: 46 72 61 6d 65 77 6f 72 6b 20 0a 20 20 20 20 20  Framework .     
4400: 20 76 65 72 73 69 6f 6e 20 28 77 68 65 6e 20 63   version (when c
4410: 6f 6d 70 6c 65 74 65 64 29 20 77 69 6c 6c 20 6e  ompleted) will n
4420: 6f 74 20 62 65 20 61 62 6c 65 20 74 6f 20 73 75  ot be able to su
4430: 70 70 6f 72 74 20 74 68 69 73 20 66 65 61 74 75  pport this featu
4440: 72 65 2c 20 73 6f 20 62 61 63 6b 77 61 72 64 73  re, so backwards
4450: 20 0a 20 20 20 20 20 20 63 6f 6d 70 61 74 69 62   .      compatib
4460: 69 6c 69 74 79 20 77 69 74 68 20 74 68 65 20 43  ility with the C
4470: 6f 6d 70 61 63 74 20 46 72 61 6d 65 77 6f 72 6b  ompact Framework
4480: 20 68 61 73 20 62 65 65 6e 20 70 72 65 73 65 72   has been preser
4490: 76 65 64 20 66 6f 72 20 74 68 65 20 66 75 74 75  ved for the futu
44a0: 72 65 2e 0a 20 20 20 20 20 20 3c 4c 49 3e 0a 20  re..      <LI>. 
44b0: 20 20 20 20 20 20 20 46 69 78 65 64 20 61 20 62         Fixed a b
44c0: 75 67 20 69 6e 20 53 51 4c 69 74 65 43 6f 6d 6d  ug in SQLiteComm
44d0: 61 6e 64 2e 45 78 65 63 75 74 65 53 63 61 6c 61  and.ExecuteScala
44e0: 72 28 29 20 74 68 61 74 20 63 61 75 73 65 64 20  r() that caused 
44f0: 69 74 20 74 6f 20 73 74 6f 70 20 65 78 65 63 75  it to stop execu
4500: 74 69 6e 67 20 0a 20 20 20 20 20 20 20 20 63 6f  ting .        co
4510: 6d 6d 61 6e 64 73 20 6f 6e 63 65 20 69 74 20 6f  mmands once it o
4520: 62 74 61 69 6e 65 64 20 74 68 65 20 66 69 72 73  btained the firs
4530: 74 20 63 6f 6c 75 6d 6e 20 6f 66 20 74 68 65 20  t column of the 
4540: 66 69 72 73 74 20 72 6f 77 2d 72 65 74 75 72 6e  first row-return
4550: 69 6e 67 20 0a 20 20 20 20 20 20 20 20 72 65 73  ing .        res
4560: 75 6c 74 73 65 74 2e 26 6e 62 73 70 3b 20 41 6e  ultset.&nbsp; An
4570: 79 20 72 65 6d 61 69 6e 69 6e 67 20 73 74 61 74  y remaining stat
4580: 65 6d 65 6e 74 73 20 61 66 74 65 72 20 74 68 65  ements after the
4590: 20 72 6f 77 2d 72 65 74 75 72 6e 69 6e 67 20 73   row-returning s
45a0: 74 61 74 65 6d 65 6e 74 20 77 61 73 20 0a 20 20  tatement was .  
45b0: 20 20 20 20 20 20 69 67 6e 6f 72 65 64 2e 0a 20        ignored.. 
45c0: 20 20 20 20 20 3c 2f 4c 49 3e 0a 20 20 20 20 3c       </LI>.    <
45d0: 2f 55 4c 3e 0a 20 20 20 20 3c 50 3e 3c 42 3e 31  /UL>.    <P><B>1
45e0: 2e 30 2e 31 30 20 2d 20 4a 75 6e 65 20 31 30 2c  .0.10 - June 10,
45f0: 20 32 30 30 35 3c 2f 42 3e 3c 42 52 3e 0a 20 20   2005</B><BR>.  
4600: 20 20 3c 2f 50 3e 0a 20 20 20 20 3c 55 4c 3e 0a    </P>.    <UL>.
4610: 20 20 20 20 20 20 3c 4c 49 3e 0a 20 20 20 20 20        <LI>.     
4620: 20 46 69 78 65 64 20 61 20 62 75 67 20 69 6e 20   Fixed a bug in 
4630: 74 68 65 20 53 51 4c 69 74 65 33 2e 63 73 20 50  the SQLite3.cs P
4640: 72 65 70 61 72 65 28 29 20 66 75 6e 63 74 69 6f  repare() functio
4650: 6e 20 74 68 61 74 20 63 72 65 61 74 65 64 20 61  n that created a
4660: 20 73 74 61 74 65 6d 65 6e 74 20 65 76 65 6e 20   statement even 
4670: 0a 20 20 20 20 20 20 77 68 65 6e 20 74 68 65 20  .      when the 
4680: 53 51 4c 69 74 65 20 65 6e 67 69 6e 65 20 72 65  SQLite engine re
4690: 74 75 72 6e 65 64 20 61 20 4e 55 4c 4c 20 70 6f  turned a NULL po
46a0: 69 6e 74 65 72 2e 20 54 79 70 69 63 61 6c 6c 79  inter. Typically
46b0: 20 74 68 69 73 20 6f 63 63 75 72 73 20 77 68 65   this occurs whe
46c0: 6e 20 0a 20 20 20 20 20 20 6d 75 6c 74 69 70 6c  n .      multipl
46d0: 65 20 73 74 61 74 65 6d 65 6e 74 73 20 61 72 65  e statements are
46e0: 20 70 72 6f 63 65 73 73 65 64 20 61 6e 64 20 74   processed and t
46f0: 68 65 72 65 20 61 72 65 20 74 72 61 69 6c 69 6e  here are trailin
4700: 67 20 63 6f 6d 6d 65 6e 74 73 20 61 74 20 74 68  g comments at th
4710: 65 20 65 6e 64 20 6f 66 20 0a 20 20 20 20 20 20  e end of .      
4720: 74 68 65 20 73 74 61 74 65 6d 65 6e 74 2e 0a 20  the statement.. 
4730: 20 20 20 20 20 3c 4c 49 3e 0a 20 20 20 20 20 20       <LI>.      
4740: 20 20 46 69 78 65 64 20 61 20 62 75 67 20 69 6e    Fixed a bug in
4750: 20 53 51 4c 69 74 65 53 74 61 74 65 6d 65 6e 74   SQLiteStatement
4760: 2e 63 73 20 74 68 61 74 20 72 65 74 72 69 65 76  .cs that retriev
4770: 65 64 20 70 61 72 61 6d 65 74 65 72 20 6e 61 6d  ed parameter nam
4780: 65 73 20 66 6f 72 20 61 20 0a 20 20 20 20 20 20  es for a .      
4790: 20 20 70 61 72 61 6d 65 74 65 72 69 7a 65 64 20    parameterized 
47a0: 71 75 65 72 79 2e 26 6e 62 73 70 3b 20 53 51 4c  query.&nbsp; SQL
47b0: 69 74 65 27 73 20 70 61 72 61 6d 65 74 65 72 73  ite's parameters
47c0: 20 61 72 65 20 31 2d 62 61 73 65 64 2c 20 61 6e   are 1-based, an
47d0: 64 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 0a  d the function .
47e0: 20 20 20 20 20 20 20 20 77 61 73 20 73 74 61 72          was star
47f0: 74 69 6e 67 20 61 74 20 30 2e 26 6e 62 73 70 3b  ting at 0.&nbsp;
4800: 20 54 68 69 73 20 77 61 73 20 66 69 6e 65 20 77   This was fine w
4810: 68 65 6e 20 61 6c 6c 20 70 61 72 61 6d 65 74 65  hen all paramete
4820: 72 73 20 77 65 72 65 20 75 6e 6e 61 6d 65 64 2c  rs were unnamed,
4830: 20 62 75 74 20 0a 20 20 20 20 20 20 20 20 66 6f   but .        fo
4840: 72 20 6e 61 6d 65 64 20 70 61 72 61 6d 65 74 65  r named paramete
4850: 72 73 20 69 74 20 63 61 75 73 65 64 20 74 68 65  rs it caused the
4860: 20 70 61 72 61 6d 65 74 65 72 73 20 74 6f 20 62   parameters to b
4870: 65 20 6f 75 74 20 6f 66 20 77 68 61 63 6b 2e 0a  e out of whack..
4880: 20 20 20 20 20 20 3c 2f 4c 49 3e 0a 20 20 20 20        </LI>.    
4890: 3c 2f 55 4c 3e 0a 20 20 20 20 3c 50 3e 3c 42 3e  </UL>.    <P><B>
48a0: 31 2e 30 2e 30 39 61 20 2d 20 4d 61 79 20 32 35  1.0.09a - May 25
48b0: 2c 20 32 30 30 35 3c 2f 42 3e 3c 42 52 3e 0a 20  , 2005</B><BR>. 
48c0: 20 20 20 3c 2f 50 3e 0a 20 20 20 20 3c 55 4c 3e     </P>.    <UL>
48d0: 0a 20 20 20 20 20 20 3c 4c 49 3e 0a 20 20 20 20  .      <LI>.    
48e0: 20 20 46 69 78 65 64 20 61 20 62 72 6f 6b 65 6e    Fixed a broken
48f0: 20 68 65 6c 70 66 69 6c 65 20 61 6e 64 20 63 6f   helpfile and co
4900: 72 72 65 63 74 65 64 20 73 6f 6d 65 20 6f 62 73  rrected some obs
4910: 6f 6c 65 74 65 20 68 65 6c 70 20 72 65 6d 61 72  olete help remar
4920: 6b 73 20 69 6e 20 0a 20 20 20 20 20 20 53 51 4c  ks in .      SQL
4930: 69 74 65 46 75 6e 63 74 69 6f 6e 2e 63 73 0a 20  iteFunction.cs. 
4940: 20 20 20 20 20 3c 4c 49 3e 0a 20 20 20 20 20 20       <LI>.      
4950: 20 20 41 64 64 65 64 20 61 20 76 65 72 73 69 6f    Added a versio
4960: 6e 20 72 65 73 6f 75 72 63 65 20 74 6f 20 74 68  n resource to th
4970: 65 20 53 51 4c 69 74 65 2e 49 6e 74 65 72 6f 70  e SQLite.Interop
4980: 2e 44 4c 4c 2e 26 6e 62 73 70 3b 3c 2f 4c 49 3e  .DLL.&nbsp;</LI>
4990: 3c 2f 55 4c 3e 0a 20 20 20 20 3c 50 3e 3c 42 3e  </UL>.    <P><B>
49a0: 31 2e 30 2e 30 39 20 2d 20 4d 61 79 20 32 34 2c  1.0.09 - May 24,
49b0: 20 32 30 30 35 3c 2f 42 3e 3c 42 52 3e 0a 20 20   2005</B><BR>.  
49c0: 20 20 3c 2f 50 3e 0a 20 20 20 20 3c 55 4c 3e 0a    </P>.    <UL>.
49d0: 20 20 20 20 20 20 3c 4c 49 3e 0a 20 20 20 20 20        <LI>.     
49e0: 20 43 6f 64 65 20 6d 65 72 67 65 20 77 69 74 68   Code merge with
49f0: 20 74 68 65 20 6c 61 74 65 73 74 20 33 2e 32 31   the latest 3.21
4a00: 20 76 65 72 73 69 6f 6e 20 6f 66 20 53 51 4c 69   version of SQLi
4a10: 74 65 2e 0a 20 20 20 20 20 20 3c 4c 49 3e 0a 20  te..      <LI>. 
4a20: 20 20 20 20 20 20 20 52 65 6d 6f 76 65 64 20 6f         Removed o
4a30: 62 73 6f 6c 65 74 65 20 6d 65 74 68 6f 64 73 20  bsolete methods 
4a40: 61 6e 64 20 70 72 6f 70 65 72 74 69 65 73 20 66  and properties f
4a50: 6f 72 20 57 68 69 64 62 65 79 20 42 65 74 61 20  or Whidbey Beta 
4a60: 32 3c 2f 4c 49 3e 3c 2f 55 4c 3e 0a 20 20 20 20  2</LI></UL>.    
4a70: 3c 50 3e 3c 42 3e 31 2e 30 2e 30 38 20 52 65 66  <P><B>1.0.08 Ref
4a80: 72 65 73 68 20 2d 20 4d 61 72 20 32 34 2c 20 32  resh - Mar 24, 2
4a90: 30 30 35 3c 42 52 3e 0a 20 20 20 20 20 20 3c 2f  005<BR>.      </
4aa0: 42 3e 0a 20 20 20 20 3c 2f 50 3e 0a 20 20 20 20  B>.    </P>.    
4ab0: 3c 55 4c 3e 0a 20 20 20 20 20 20 3c 4c 49 3e 0a  <UL>.      <LI>.
4ac0: 20 20 20 20 20 20 43 6f 64 65 20 6d 65 72 67 65        Code merge
4ad0: 20 77 69 74 68 20 74 68 65 20 6c 61 74 65 73 74   with the latest
4ae0: 20 33 2e 32 30 20 76 65 72 73 69 6f 6e 20 6f 66   3.20 version of
4af0: 20 53 51 4c 69 74 65 2e 0a 20 20 20 20 20 20 3c   SQLite..      <
4b00: 4c 49 3e 0a 20 20 20 20 20 20 20 20 52 65 63 6f  LI>.        Reco
4b10: 6d 70 69 6c 65 64 20 74 68 65 20 68 65 6c 70 20  mpiled the help 
4b20: 66 69 6c 65 20 74 6f 20 66 69 78 20 61 20 62 75  file to fix a bu
4b30: 69 6c 64 20 65 72 72 6f 72 20 69 6e 20 69 74 2e  ild error in it.
4b40: 0a 20 20 20 20 20 20 3c 2f 4c 49 3e 0a 20 20 20  .      </LI>.   
4b50: 20 3c 2f 55 4c 3e 0a 20 20 20 20 3c 50 3e 3c 42   </UL>.    <P><B
4b60: 3e 31 2e 30 2e 30 38 20 2d 20 4d 61 72 20 31 31  >1.0.08 - Mar 11
4b70: 2c 20 32 30 30 35 3c 42 52 3e 0a 20 20 20 20 20  , 2005<BR>.     
4b80: 20 3c 2f 42 3e 0a 20 20 20 20 3c 2f 50 3e 0a 20   </B>.    </P>. 
4b90: 20 20 20 3c 55 4c 3e 0a 20 20 20 20 20 20 3c 4c     <UL>.      <L
4ba0: 49 3e 0a 20 20 20 20 20 20 41 64 64 65 64 20 61  I>.      Added a
4bb0: 64 64 69 74 69 6f 6e 61 6c 20 23 69 66 20 73 74  dditional #if st
4bc0: 61 74 65 6d 65 6e 74 73 20 74 6f 20 73 75 70 70  atements to supp
4bd0: 6f 72 74 20 74 68 65 20 6f 6c 64 20 62 65 74 61  ort the old beta
4be0: 20 31 20 65 64 69 74 69 6f 6e 20 6f 66 20 56 53   1 edition of VS
4bf0: 32 30 30 35 2e 0a 20 20 20 20 20 20 3c 4c 49 3e  2005..      <LI>
4c00: 0a 20 20 20 20 20 20 20 20 43 6f 64 65 20 6d 65  .        Code me
4c10: 72 67 65 64 20 74 68 65 20 53 51 4c 69 74 65 20  rged the SQLite 
4c20: 33 2e 31 34 20 73 6f 75 72 63 65 2e 0a 20 20 20  3.14 source..   
4c30: 20 20 20 3c 2f 4c 49 3e 0a 20 20 20 20 3c 2f 55     </LI>.    </U
4c40: 4c 3e 0a 20 20 20 20 3c 50 3e 3c 42 3e 31 2e 30  L>.    <P><B>1.0
4c50: 2e 30 37 20 2d 20 4d 61 72 20 35 2c 20 32 30 30  .07 - Mar 5, 200
4c60: 35 3c 2f 42 3e 3c 42 52 3e 0a 20 20 20 20 3c 2f  5</B><BR>.    </
4c70: 50 3e 0a 20 20 20 20 3c 55 4c 3e 0a 20 20 20 20  P>.    <UL>.    
4c80: 20 20 3c 4c 49 3e 0a 20 20 20 20 20 20 4d 61 64    <LI>.      Mad
4c90: 65 20 6d 6f 72 65 20 6f 70 74 69 6d 69 7a 61 74  e more optimizat
4ca0: 69 6f 6e 73 20 74 6f 20 66 72 65 71 75 65 6e 74  ions to frequent
4cb0: 6c 79 2d 63 61 6c 6c 65 64 20 66 75 6e 63 74 69  ly-called functi
4cc0: 6f 6e 73 2c 20 72 65 73 75 6c 74 69 6e 67 20 69  ons, resulting i
4cd0: 6e 20 0a 20 20 20 20 20 20 73 69 67 6e 69 66 69  n .      signifi
4ce0: 63 61 6e 74 20 70 65 72 66 6f 72 6d 61 6e 63 65  cant performance
4cf0: 20 67 61 69 6e 73 20 69 6e 20 61 6c 6c 20 74 65   gains in all te
4d00: 73 74 73 2e 0a 20 20 20 20 20 20 3c 4c 49 3e 0a  sts..      <LI>.
4d10: 20 20 20 20 20 20 20 20 52 65 63 6f 6d 70 69 6c          Recompil
4d20: 65 64 20 74 68 65 20 62 69 6e 61 72 69 65 73 20  ed the binaries 
4d30: 75 73 69 6e 67 20 74 68 65 20 6c 61 74 65 73 74  using the latest
4d40: 20 56 53 32 30 30 35 20 46 65 62 72 75 61 72 79   VS2005 February
4d50: 20 43 54 50 2c 20 72 65 73 75 6c 74 69 6e 67 20   CTP, resulting 
4d60: 69 6e 20 79 65 74 20 0a 20 20 20 20 20 20 20 20  in yet .        
4d70: 6d 6f 72 65 20 73 69 67 6e 69 66 69 63 61 6e 74  more significant
4d80: 20 73 70 65 65 64 20 67 61 69 6e 73 2e 26 6e 62   speed gains.&nb
4d90: 73 70 3b 20 54 68 65 20 31 30 30 6b 20 69 6e 73  sp; The 100k ins
4da0: 65 72 74 20 74 65 73 74 20 75 73 65 64 20 74 6f  ert test used to
4db0: 20 74 61 6b 65 20 33 2e 35 20 0a 20 20 20 20 20   take 3.5 .     
4dc0: 20 20 20 73 65 63 6f 6e 64 73 20 61 6e 64 20 74     seconds and t
4dd0: 68 65 20 69 6e 73 65 72 74 77 69 74 68 69 64 65  he insertwithide
4de0: 6e 74 69 74 79 20 74 6f 6f 6b 20 61 6c 6d 6f 73  ntity took almos
4df0: 74 20 38 20 73 65 63 6f 6e 64 73 2e 26 6e 62 73  t 8 seconds.&nbs
4e00: 70 3b 20 57 69 74 68 20 74 68 65 20 61 62 6f 76  p; With the abov
4e10: 65 20 0a 20 20 20 20 20 20 20 20 74 77 6f 20 63  e .        two c
4e20: 68 61 6e 67 65 73 2c 20 74 68 6f 73 65 20 74 65  hanges, those te
4e30: 73 74 73 20 61 72 65 20 6e 6f 77 20 65 78 65 63  sts are now exec
4e40: 75 74 69 6e 67 20 69 6e 20 31 2e 39 20 61 6e 64  uting in 1.9 and
4e50: 20 34 2e 39 20 73 65 63 6f 6e 64 73 20 72 65 73   4.9 seconds res
4e60: 70 65 63 74 69 76 65 6c 79 2e 3c 2f 4c 49 3e 3c  pectively.</LI><
4e70: 2f 55 4c 3e 0a 20 20 20 20 3c 50 3e 3c 42 3e 31  /UL>.    <P><B>1
4e80: 2e 30 2e 30 36 20 2d 20 4d 61 72 20 31 2c 20 32  .0.06 - Mar 1, 2
4e90: 30 30 35 3c 42 52 3e 0a 20 20 20 20 20 20 3c 2f  005<BR>.      </
4ea0: 42 3e 0a 20 20 20 20 3c 2f 50 3e 0a 20 20 20 20  B>.    </P>.    
4eb0: 3c 55 4c 3e 0a 20 20 20 20 20 20 3c 4c 49 3e 0a  <UL>.      <LI>.
4ec0: 20 20 20 20 20 20 53 70 65 65 64 2d 75 70 73 20        Speed-ups 
4ed0: 74 6f 20 53 51 4c 69 74 65 44 61 74 61 52 65 61  to SQLiteDataRea
4ee0: 64 65 72 2e 26 6e 62 73 70 3b 20 49 74 20 77 61  der.&nbsp; It wa
4ef0: 73 20 69 6e 74 65 72 6f 70 27 69 6e 67 20 75 6e  s interop'ing un
4f00: 6e 65 63 65 73 73 61 72 69 6c 79 20 65 76 65 72  necessarily ever
4f10: 79 20 0a 20 20 20 20 20 20 74 69 6d 65 20 69 74  y .      time it
4f20: 20 74 72 69 65 64 20 74 6f 20 66 65 74 63 68 20   tried to fetch 
4f30: 61 20 66 69 65 6c 64 20 64 75 65 20 74 6f 20 61  a field due to a
4f40: 20 6c 6f 67 69 63 20 65 72 72 6f 72 2e 0a 20 20   logic error..  
4f50: 20 20 20 20 3c 4c 49 3e 0a 20 20 20 20 20 20 43      <LI>.      C
4f60: 68 61 6e 67 65 64 2f 41 64 64 65 64 20 73 6f 6d  hanged/Added som
4f70: 65 20 63 6f 64 65 20 74 6f 20 53 51 4c 69 74 65  e code to SQLite
4f80: 43 6f 6e 76 65 72 74 27 73 20 69 6e 74 65 72 6e  Convert's intern
4f90: 61 6c 20 44 62 54 79 70 65 2c 20 54 79 70 65 20  al DbType, Type 
4fa0: 61 6e 64 20 0a 20 20 20 20 20 20 54 79 70 65 41  and .      TypeA
4fb0: 66 66 69 6e 69 74 79 20 66 75 6e 63 74 69 6f 6e  ffinity function
4fc0: 73 2e 0a 20 20 20 20 20 20 3c 4c 49 3e 0a 20 20  s..      <LI>.  
4fd0: 20 20 20 20 46 69 78 65 64 20 74 68 65 20 53 51      Fixed the SQ
4fe0: 4c 69 74 65 44 61 74 61 52 65 61 64 65 72 20 74  LiteDataReader t
4ff0: 6f 20 6f 62 65 79 20 74 68 65 20 66 6c 61 67 73  o obey the flags
5000: 20 73 65 74 20 69 6e 20 74 68 65 20 6f 70 74 69   set in the opti
5010: 6f 6e 61 6c 20 0a 20 20 20 20 20 20 43 6f 6d 6d  onal .      Comm
5020: 61 6e 64 42 65 68 61 76 69 6f 72 20 66 6c 61 67  andBehavior flag
5030: 20 66 72 6f 6d 20 53 51 4c 69 74 65 43 6f 6d 6d   from SQLiteComm
5040: 61 6e 64 2e 45 78 65 63 75 74 65 52 65 61 64 65  and.ExecuteReade
5050: 72 28 29 2e 0a 20 20 20 20 20 20 3c 4c 49 3e 0a  r()..      <LI>.
5060: 20 20 20 20 20 20 43 68 61 6e 67 65 64 20 74 68        Changed th
5070: 65 20 64 65 66 61 75 6c 74 20 70 61 67 65 20 73  e default page s
5080: 69 7a 65 20 74 6f 20 31 30 32 34 20 74 6f 20 72  ize to 1024 to r
5090: 65 66 6c 65 63 74 20 74 68 65 20 64 65 66 61 75  eflect the defau
50a0: 6c 74 73 20 6f 66 20 53 51 4c 69 74 65 2e 26 6e  lts of SQLite.&n
50b0: 62 73 70 3b 20 0a 20 20 20 20 20 20 49 67 6e 6f  bsp; .      Igno
50c0: 72 65 73 20 74 68 65 20 22 50 61 67 65 20 53 69  res the "Page Si
50d0: 7a 65 22 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 73  ze" connection s
50e0: 74 72 69 6e 67 20 6f 70 74 69 6f 6e 20 66 6f 72  tring option for
50f0: 20 6d 65 6d 6f 72 79 20 64 61 74 61 62 61 73 65   memory database
5100: 73 2c 20 61 73 20 74 65 73 74 73 20 0a 20 20 20  s, as tests .   
5110: 20 20 20 72 65 76 65 61 6c 65 64 20 74 68 61 74     revealed that
5120: 20 63 68 61 6e 67 69 6e 67 20 69 74 20 72 65 73   changing it res
5130: 75 6c 74 65 64 20 69 6e 20 6d 65 6d 6f 72 79 20  ulted in memory 
5140: 63 6f 72 72 75 70 74 69 6f 6e 20 65 72 72 6f 72  corruption error
5150: 73 2e 0a 20 20 20 20 20 20 3c 4c 49 3e 0a 20 20  s..      <LI>.  
5160: 20 20 20 20 20 20 50 65 72 66 6f 72 6d 61 6e 63        Performanc
5170: 65 20 65 6e 68 61 6e 63 65 6d 65 6e 74 73 20 74  e enhancements t
5180: 6f 20 74 68 65 20 53 51 4c 69 74 65 43 6f 6d 6d  o the SQLiteComm
5190: 61 6e 64 20 61 6e 64 20 53 51 4c 69 74 65 53 74  and and SQLiteSt
51a0: 61 74 65 6d 65 6e 74 20 63 6c 61 73 73 65 73 20  atement classes 
51b0: 77 68 69 63 68 20 0a 20 20 20 20 20 20 20 20 72  which .        r
51c0: 65 64 75 63 65 64 20 74 68 65 20 31 30 30 2c 30  educed the 100,0
51d0: 30 30 20 72 6f 77 20 69 6e 73 65 72 74 20 65 78  00 row insert ex
51e0: 65 63 75 74 69 6f 6e 20 74 69 6d 65 20 61 73 20  ecution time as 
51f0: 77 65 6c 6c 20 61 73 20 74 68 65 20 76 61 72 69  well as the vari
5200: 6f 75 73 20 46 75 6e 63 74 69 6f 6e 20 0a 20 20  ous Function .  
5210: 20 20 20 20 20 20 65 78 65 63 75 74 69 6f 6e 20        execution 
5220: 74 69 6d 65 73 20 73 69 67 6e 69 66 69 63 61 6e  times significan
5230: 74 6c 79 2e 0a 20 20 20 20 20 20 3c 2f 4c 49 3e  tly..      </LI>
5240: 0a 20 20 20 20 3c 2f 55 4c 3e 0a 20 20 20 20 3c  .    </UL>.    <
5250: 50 3e 3c 42 3e 31 2e 30 2e 30 35 20 2d 20 46 65  P><B>1.0.05 - Fe
5260: 62 20 32 35 2c 20 32 30 30 35 3c 2f 42 3e 0a 20  b 25, 2005</B>. 
5270: 20 20 20 3c 2f 50 3e 0a 20 20 20 20 3c 55 4c 3e     </P>.    <UL>
5280: 0a 20 20 20 20 20 20 3c 4c 49 3e 0a 20 20 20 20  .      <LI>.    
5290: 20 20 46 69 78 65 64 20 74 68 65 20 53 51 4c 69    Fixed the SQLi
52a0: 74 65 33 20 43 23 20 63 6c 61 73 73 20 73 74 65  te3 C# class ste
52b0: 70 2f 72 65 73 65 74 20 66 75 6e 63 74 69 6f 6e  p/reset function
52c0: 73 20 74 6f 20 61 63 63 6f 6d 6f 64 61 74 65 20  s to accomodate 
52d0: 73 63 68 65 6d 61 20 63 68 61 6e 67 65 73 20 0a  schema changes .
52e0: 20 20 20 20 20 20 74 68 61 74 20 69 6e 76 61 6c        that inval
52f0: 69 64 61 74 65 20 61 20 70 72 65 70 61 72 65 64  idate a prepared
5300: 20 73 74 61 74 65 6d 65 6e 74 2e 26 6e 62 73 70   statement.&nbsp
5310: 3b 20 53 74 61 74 65 6d 65 6e 74 73 20 61 72 65  ; Statements are
5320: 20 72 65 63 6f 6d 70 69 6c 65 64 20 0a 20 20 20   recompiled .   
5330: 20 20 20 74 72 61 6e 73 70 61 72 65 6e 74 6c 79     transparently
5340: 2e 0a 20 20 20 20 20 20 3c 4c 49 3e 0a 20 20 20  ..      <LI>.   
5350: 20 20 20 4d 6f 76 65 64 20 61 6c 6c 20 6e 61 74     Moved all nat
5360: 69 76 65 20 44 4c 4c 20 64 65 63 6c 61 72 61 74  ive DLL declarat
5370: 69 6f 6e 73 20 74 6f 20 61 6e 20 55 6e 73 61 66  ions to an Unsaf
5380: 65 4e 61 74 69 76 65 4d 65 74 68 6f 64 73 20 63  eNativeMethods c
5390: 6c 61 73 73 2e 0a 20 20 20 20 20 20 3c 4c 49 3e  lass..      <LI>
53a0: 0a 20 20 20 20 20 20 53 70 6c 69 74 20 73 65 76  .      Split sev
53b0: 65 72 61 6c 20 63 6c 61 73 73 65 73 20 69 6e 74  eral classes int
53c0: 6f 20 74 68 65 69 72 20 6f 77 6e 20 6d 6f 64 75  o their own modu
53d0: 6c 65 73 20 66 6f 72 20 72 65 61 64 61 62 69 6c  les for readabil
53e0: 69 74 79 2e 0a 20 20 20 20 20 20 3c 4c 49 3e 0a  ity..      <LI>.
53f0: 20 20 20 20 20 20 52 65 6e 61 6d 65 64 20 6d 61        Renamed ma
5400: 6e 79 20 69 6e 74 65 72 6e 61 6c 20 76 61 72 69  ny internal vari
5410: 61 62 6c 65 73 2c 20 72 65 76 69 65 77 65 64 20  ables, reviewed 
5420: 61 63 63 65 73 73 20 74 6f 20 76 61 72 69 61 62  access to variab
5430: 6c 65 73 20 6d 61 72 6b 65 64 20 61 73 20 0a 20  les marked as . 
5440: 20 20 20 20 20 69 6e 74 65 72 6e 61 6c 20 61 6e       internal an
5450: 64 20 61 6c 74 65 72 65 64 20 74 68 65 69 72 20  d altered their 
5460: 70 72 6f 74 65 63 74 69 6f 6e 20 6c 65 76 65 6c  protection level
5470: 73 20 61 63 63 6f 72 64 69 6e 67 6c 79 2e 0a 20  s accordingly.. 
5480: 20 20 20 20 20 3c 4c 49 3e 0a 20 20 20 20 20 20       <LI>.      
5490: 44 75 65 20 74 6f 20 74 68 65 20 70 72 65 73 65  Due to the prese
54a0: 6e 63 65 20 6f 66 20 74 68 65 20 61 6c 74 65 72  nce of the alter
54b0: 65 64 20 73 71 6c 69 74 65 33 20 63 6f 64 65 62  ed sqlite3 codeb
54c0: 61 73 65 20 61 6e 64 20 73 6f 20 6d 61 6e 79 20  ase and so many 
54d0: 61 64 64 65 64 20 69 6e 74 65 72 6f 70 20 0a 20  added interop . 
54e0: 20 20 20 20 20 66 75 6e 63 74 69 6f 6e 73 2c 20       functions, 
54f0: 49 20 64 65 63 69 64 65 64 20 74 6f 20 72 65 6e  I decided to ren
5500: 61 6d 65 20 74 68 65 20 73 71 6c 69 74 65 33 20  ame the sqlite3 
5510: 43 20 70 72 6f 6a 65 63 74 20 61 6e 64 20 74 68  C project and th
5520: 65 20 44 4c 4c 20 74 6f 20 0a 20 20 20 20 20 20  e DLL to .      
5530: 53 51 4c 69 74 65 2e 49 6e 74 65 72 6f 70 2e 44  SQLite.Interop.D
5540: 4c 4c 2e 26 6e 62 73 70 3b 20 54 68 69 73 20 69  LL.&nbsp; This i
5550: 73 20 74 68 65 20 73 61 6d 65 20 63 6f 72 65 20  s the same core 
5560: 73 71 6c 69 74 65 33 20 63 6f 64 65 62 61 73 65  sqlite3 codebase
5570: 20 62 75 74 20 64 65 73 69 67 6e 65 64 20 0a 20   but designed . 
5580: 20 20 20 20 20 73 70 65 63 69 66 69 63 61 6c 6c       specificall
5590: 79 20 66 6f 72 20 74 68 69 73 20 41 44 4f 2e 4e  y for this ADO.N
55a0: 45 54 20 70 72 6f 76 69 64 65 72 2e 26 6e 62 73  ET provider.&nbs
55b0: 70 3b 20 54 68 69 73 20 65 6c 69 6d 69 6e 61 74  p; This eliminat
55c0: 65 73 20 61 6e 79 20 70 6f 73 73 69 62 69 6c 69  es any possibili
55d0: 74 79 20 0a 20 20 20 20 20 20 6f 66 20 73 6f 6d  ty .      of som
55e0: 65 6f 6e 65 20 64 72 6f 70 70 69 6e 67 20 61 6e  eone dropping an
55f0: 6f 74 68 65 72 20 62 75 69 6c 64 20 6f 66 20 73  other build of s
5600: 71 6c 69 74 65 33 2e 64 6c 6c 20 69 6e 74 6f 20  qlite3.dll into 
5610: 74 68 65 20 73 79 73 74 65 6d 20 61 6e 64 20 72  the system and r
5620: 65 6e 64 65 72 69 6e 67 20 0a 20 20 20 20 20 20  endering .      
5630: 74 68 65 20 70 72 6f 76 69 64 65 72 20 69 6e 6f  the provider ino
5640: 70 65 72 61 62 6c 65 2e 26 6e 62 73 70 3b 20 49  perable.&nbsp; I
5650: 6e 20 74 68 65 20 66 75 74 75 72 65 20 69 66 20  n the future if 
5660: 74 68 65 20 66 6f 6c 6b 73 20 61 74 20 73 71 6c  the folks at sql
5670: 69 74 65 2e 6f 72 67 20 66 69 6e 61 6c 6c 79 20  ite.org finally 
5680: 0a 20 20 20 20 20 20 69 6e 74 72 6f 64 75 63 65  .      introduce
5690: 20 61 20 6d 65 74 68 6f 64 20 6f 66 20 72 65 74   a method of ret
56a0: 72 69 65 76 69 6e 67 20 63 6f 6c 75 6d 6e 20 75  rieving column u
56b0: 73 61 67 65 20 66 6f 72 20 61 6e 20 61 72 62 69  sage for an arbi
56c0: 74 72 61 72 79 20 70 72 65 70 61 72 65 64 20 0a  trary prepared .
56d0: 20 20 20 20 20 20 73 74 61 74 65 6d 65 6e 74 2c        statement,
56e0: 20 49 27 6c 6c 20 72 65 74 6f 6f 6c 20 74 68 69   I'll retool thi
56f0: 73 20 6c 69 62 72 61 72 79 20 74 6f 20 62 65 20  s library to be 
5700: 61 20 6c 69 67 68 74 77 65 69 67 68 74 20 66 75  a lightweight fu
5710: 6e 63 74 69 6f 6e 20 63 61 6c 6c 20 77 72 61 70  nction call wrap
5720: 70 65 72 20 0a 20 20 20 20 20 20 61 72 6f 75 6e  per .      aroun
5730: 64 20 74 68 65 20 63 6f 72 65 20 62 69 6e 61 72  d the core binar
5740: 79 20 64 69 73 74 72 69 62 75 74 69 6f 6e 2e 0a  y distribution..
5750: 20 20 20 20 20 20 3c 4c 49 3e 0a 20 20 20 20 20        <LI>.     
5760: 20 41 64 64 65 64 20 5b 53 75 70 70 72 65 73 73   Added [Suppress
5770: 55 6e 6d 61 6e 61 67 65 64 43 6f 64 65 53 65 63  UnmanagedCodeSec
5780: 75 72 69 74 79 5d 20 61 74 74 72 69 62 75 74 65  urity] attribute
5790: 20 74 6f 20 74 68 65 20 55 6e 73 61 66 65 4e 61   to the UnsafeNa
57a0: 74 69 76 65 4d 65 74 68 6f 64 73 20 0a 20 20 20  tiveMethods .   
57b0: 20 20 20 63 6c 61 73 73 20 77 68 69 63 68 20 62     class which b
57c0: 72 69 6e 67 73 20 56 53 32 30 30 35 20 4e 6f 76  rings VS2005 Nov
57d0: 65 6d 62 65 72 20 43 54 50 20 65 78 65 63 75 74  ember CTP execut
57e0: 69 6f 6e 20 73 70 65 65 64 73 20 69 6e 6c 69 6e  ion speeds inlin
57f0: 65 20 77 69 74 68 20 74 68 65 20 0a 20 20 20 20  e with the .    
5800: 20 20 44 65 63 65 6d 62 65 72 20 43 54 50 2e 0a    December CTP..
5810: 20 20 20 20 20 20 3c 4c 49 3e 0a 20 20 20 20 20        <LI>.     
5820: 20 20 20 41 64 64 65 64 20 61 20 3c 42 3e 62 69     Added a <B>bi
5830: 6e 3c 2f 42 3e 0a 20 20 20 20 20 20 64 69 72 65  n</B>.      dire
5840: 63 74 6f 72 79 20 74 6f 20 74 68 65 20 70 72 6f  ctory to the pro
5850: 6a 65 63 74 20 72 6f 6f 74 20 77 68 65 72 65 20  ject root where 
5860: 70 72 65 2d 63 6f 6d 70 69 6c 65 64 20 62 69 6e  pre-compiled bin
5870: 61 72 69 65 73 20 63 61 6e 20 62 65 20 66 6f 75  aries can be fou
5880: 6e 64 2e 0a 20 20 20 20 20 20 3c 4c 49 3e 0a 20  nd..      <LI>. 
5890: 20 20 20 20 20 20 20 41 64 64 65 64 20 61 20 3c         Added a <
58a0: 42 3e 64 6f 63 3c 2f 42 3e 0a 20 20 20 20 20 20  B>doc</B>.      
58b0: 64 69 72 65 63 74 6f 72 79 20 77 68 65 72 65 20  directory where 
58c0: 70 72 65 6c 69 6d 69 6e 61 72 79 20 64 6f 63 75  preliminary docu
58d0: 6d 65 6e 74 61 74 69 6f 6e 20 6f 6e 20 74 68 65  mentation on the
58e0: 20 63 6c 61 73 73 20 6c 69 62 72 61 72 79 20 63   class library c
58f0: 61 6e 20 62 65 20 66 6f 75 6e 64 2e 0a 20 20 20  an be found..   
5900: 20 20 20 3c 4c 49 3e 0a 20 20 20 20 20 20 20 20     <LI>.        
5910: 44 6f 63 75 6d 65 6e 74 65 64 20 61 20 6c 6f 74  Documented a lot
5920: 20 6d 6f 72 65 20 6f 66 20 74 68 65 20 63 6c 61   more of the cla
5930: 73 73 65 73 20 69 6e 74 65 72 6e 61 6c 6c 79 2e  sses internally.
5940: 0a 20 20 20 20 20 20 3c 2f 4c 49 3e 0a 20 20 20  .      </LI>.   
5950: 20 3c 2f 55 4c 3e 0a 20 20 20 20 3c 50 3e 3c 42   </UL>.    <P><B
5960: 3e 31 2e 30 2e 30 34 20 2d 20 46 65 62 20 32 34  >1.0.04 - Feb 24
5970: 2c 20 32 30 30 35 3c 2f 42 3e 0a 20 20 20 20 3c  , 2005</B>.    <
5980: 2f 50 3e 0a 20 20 20 20 3c 55 4c 3e 0a 20 20 20  /P>.    <UL>.   
5990: 20 20 20 3c 4c 49 3e 0a 20 20 20 20 20 20 52 65     <LI>.      Re
59a0: 6d 6f 76 65 64 20 74 68 65 20 53 51 4c 69 74 65  moved the SQLite
59b0: 43 6f 6e 74 65 78 74 20 63 6c 61 73 73 20 61 6e  Context class an
59c0: 64 20 72 65 76 61 6d 70 65 64 20 74 68 65 20 77  d revamped the w
59d0: 61 79 20 55 73 65 72 46 75 6e 63 74 69 6f 6e 73  ay UserFunctions
59e0: 20 77 6f 72 6b 20 74 6f 20 0a 20 20 20 20 20 20   work to .      
59f0: 73 69 6d 70 6c 69 66 79 20 74 68 65 20 69 6d 6c  simplify the iml
5a00: 65 6d 65 6e 74 61 74 69 6f 6e 2e 0a 20 20 20 20  ementation..    
5a10: 20 20 3c 4c 49 3e 0a 20 20 20 20 20 20 46 69 78    <LI>.      Fix
5a20: 65 64 20 61 20 63 6f 75 6e 74 69 6e 67 20 62 75  ed a counting bu
5a30: 67 20 69 6e 20 74 68 65 20 54 65 73 74 43 61 73  g in the TestCas
5a40: 65 73 20 63 6c 61 73 73 2c 20 73 70 65 63 69 66  es class, specif
5a50: 69 63 61 6c 6c 79 20 69 6e 20 74 68 65 20 66 75  ically in the fu
5a60: 6e 63 74 69 6f 6e 20 74 65 73 74 73 20 0a 20 20  nction tests .  
5a70: 20 20 20 20 77 68 65 72 65 20 49 20 77 61 73 6e      where I wasn
5a80: 27 74 20 72 65 73 65 74 74 69 6e 67 20 74 68 65  't resetting the
5a90: 20 63 6f 75 6e 74 65 72 20 61 6e 64 20 69 74 20   counter and it 
5aa0: 77 61 73 20 63 6f 6e 73 65 71 75 65 6e 74 6c 79  was consequently
5ab0: 20 72 65 70 6f 72 74 69 6e 67 20 0a 20 20 20 20   reporting .    
5ac0: 20 20 69 6e 74 72 69 6e 73 69 63 20 61 6e 64 20    intrinsic and 
5ad0: 72 61 77 20 73 65 6c 65 63 74 20 63 61 6c 6c 73  raw select calls
5ae0: 20 61 73 20 62 65 69 6e 67 20 6d 75 63 68 20 6d   as being much m
5af0: 75 63 68 20 66 61 73 74 65 72 20 74 68 61 6e 20  uch faster than 
5b00: 74 68 65 79 20 61 63 74 75 61 6c 6c 79 20 0a 20  they actually . 
5b10: 20 20 20 20 20 77 65 72 65 2e 26 6e 62 73 70 3b       were.&nbsp;
5b20: 20 54 68 65 20 6e 75 6d 62 65 72 73 20 61 72 65   The numbers are
5b30: 20 6e 6f 77 20 6d 75 63 68 20 63 6c 6f 73 65 72   now much closer
5b40: 20 74 6f 20 77 68 61 74 20 49 20 65 78 70 65 63   to what I expec
5b50: 74 65 64 20 66 6f 72 20 70 65 72 66 6f 72 6d 61  ted for performa
5b60: 6e 63 65 2c 20 0a 20 20 20 20 20 20 77 69 74 68  nce, .      with
5b70: 20 2e 4e 45 54 20 75 73 65 72 2d 66 75 6e 63 74   .NET user-funct
5b80: 69 6f 6e 73 20 73 74 69 6c 6c 20 62 65 69 6e 67  ions still being
5b90: 20 74 68 65 20 73 6c 6f 77 65 73 74 2c 20 62 75   the slowest, bu
5ba0: 74 20 6f 6e 6c 79 20 62 79 20 61 20 73 6d 61 6c  t only by a smal
5bb0: 6c 20 6d 61 72 67 69 6e 2e 0a 20 20 20 20 20 20  l margin..      
5bc0: 3c 4c 49 3e 0a 20 20 20 20 20 20 53 6d 61 6c 6c  <LI>.      Small
5bd0: 20 70 65 72 66 6f 72 6d 61 6e 63 65 20 74 77 65   performance twe
5be0: 61 6b 73 20 74 6f 20 53 51 4c 69 74 65 44 61 74  aks to SQLiteDat
5bf0: 61 52 65 61 64 65 72 2e 0a 20 20 20 20 20 20 3c  aReader..      <
5c00: 4c 49 3e 0a 20 20 20 20 20 20 41 64 64 65 64 20  LI>.      Added 
5c10: 50 61 67 65 53 69 7a 65 20 74 6f 20 74 68 65 20  PageSize to the 
5c20: 53 51 4c 69 74 65 43 6f 6e 6e 65 63 74 69 6f 6e  SQLiteConnection
5c30: 53 74 72 69 6e 67 42 75 69 6c 64 65 72 20 61 6e  StringBuilder an
5c40: 64 20 73 75 62 73 65 71 75 65 6e 74 6c 79 20 74  d subsequently t
5c50: 6f 20 74 68 65 20 0a 20 20 20 20 20 20 53 51 4c  o the .      SQL
5c60: 69 74 65 43 6f 6e 6e 65 63 74 69 6f 6e 0a 20 20  iteConnection.  
5c70: 20 20 20 20 3c 4c 49 3e 0a 20 20 20 20 20 20 20      <LI>.       
5c80: 20 41 64 64 65 64 20 61 20 50 52 41 47 4d 41 20   Added a PRAGMA 
5c90: 65 6e 63 6f 64 69 6e 67 3d 58 58 58 20 65 78 65  encoding=XXX exe
5ca0: 63 75 74 69 6f 6e 20 73 74 61 74 65 6d 65 6e 74  cution statement
5cb0: 20 74 6f 20 74 68 65 20 53 51 4c 69 74 65 43 6f   to the SQLiteCo
5cc0: 6e 6e 65 63 74 69 6f 6e 20 61 66 74 65 72 20 0a  nnection after .
5cd0: 20 20 20 20 20 20 20 20 6f 70 65 6e 69 6e 67 20          opening 
5ce0: 61 20 63 6f 6e 6e 65 63 74 69 6f 6e 2e 0a 20 20  a connection..  
5cf0: 20 20 20 20 3c 2f 4c 49 3e 0a 20 20 20 20 3c 2f      </LI>.    </
5d00: 55 4c 3e 0a 20 20 20 20 3c 50 3e 3c 42 3e 31 2e  UL>.    <P><B>1.
5d10: 30 2e 30 33 20 2d 20 46 65 62 20 32 33 2c 20 32  0.03 - Feb 23, 2
5d20: 30 30 35 3c 2f 42 3e 0a 20 20 20 20 3c 2f 50 3e  005</B>.    </P>
5d30: 0a 20 20 20 20 3c 55 4c 3e 0a 20 20 20 20 20 20  .    <UL>.      
5d40: 3c 4c 49 3e 0a 20 20 20 20 20 20 46 69 78 65 64  <LI>.      Fixed
5d50: 20 75 70 20 53 51 4c 69 74 65 43 6f 6d 6d 61 6e   up SQLiteComman
5d60: 64 42 75 69 6c 64 65 72 20 74 6f 20 63 6f 72 72  dBuilder to corr
5d70: 65 63 74 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69  ect implementati
5d80: 6f 6e 20 65 72 72 6f 72 73 2c 20 77 68 69 63 68  on errors, which
5d90: 20 72 65 73 75 6c 74 65 64 20 0a 20 20 20 20 20   resulted .     
5da0: 20 69 6e 20 61 6e 20 65 6e 6f 72 6d 6f 75 73 20   in an enormous 
5db0: 70 65 72 66 6f 72 6d 61 6e 63 65 20 62 6f 6f 73  performance boos
5dc0: 74 20 69 6e 20 74 68 65 20 49 6e 73 65 72 74 4d  t in the InsertM
5dd0: 61 6e 79 20 74 65 73 74 2e 26 6e 62 73 70 3b 26  any test.&nbsp;&
5de0: 6e 62 73 70 3b 20 31 30 2c 30 30 30 20 72 6f 77  nbsp; 10,000 row
5df0: 20 0a 20 20 20 20 20 20 69 6e 73 65 72 74 20 74   .      insert t
5e00: 68 61 74 20 65 78 65 63 75 74 65 64 20 69 6e 20  hat executed in 
5e10: 31 35 30 30 6d 73 20 6e 6f 77 20 65 78 65 63 75  1500ms now execu
5e20: 74 65 73 20 69 6e 20 35 30 30 6d 73 2e 0a 20 20  tes in 500ms..  
5e30: 20 20 20 20 3c 4c 49 3e 0a 20 20 20 20 20 20 46      <LI>.      F
5e40: 69 78 65 64 20 73 65 76 65 72 61 6c 20 65 72 72  ixed several err
5e50: 6f 72 73 20 69 6e 20 74 68 65 20 53 51 4c 69 74  ors in the SQLit
5e60: 65 33 5f 55 54 46 31 36 20 63 6c 61 73 73 2e 26  e3_UTF16 class.&
5e70: 6e 62 73 70 3b 20 54 6f 53 74 72 69 6e 67 28 29  nbsp; ToString()
5e80: 20 77 61 73 20 77 6f 72 6b 69 6e 67 20 0a 20 20   was working .  
5e90: 20 20 20 20 69 6e 63 6f 72 72 65 63 74 6c 79 20      incorrectly 
5ea0: 61 6e 64 20 74 68 65 20 4f 70 65 6e 28 29 20 6d  and the Open() m
5eb0: 65 74 68 6f 64 20 66 61 69 6c 65 64 20 74 6f 20  ethod failed to 
5ec0: 72 65 67 69 73 74 65 72 20 75 73 65 72 20 64 65  register user de
5ed0: 66 69 6e 65 64 20 66 75 6e 63 74 69 6f 6e 73 20  fined functions 
5ee0: 61 6e 64 20 0a 20 20 20 20 20 20 63 6f 6c 6c 61  and .      colla
5ef0: 74 69 6f 6e 73 2e 0a 20 20 20 20 20 20 3c 4c 49  tions..      <LI
5f00: 3e 0a 20 20 20 20 20 20 46 69 78 65 64 20 61 20  >.      Fixed a 
5f10: 62 75 67 20 69 6e 20 53 51 4c 69 74 65 43 6f 6d  bug in SQLiteCom
5f20: 6d 61 6e 64 2e 43 6c 65 61 72 43 6f 6d 6d 61 6e  mand.ClearComman
5f30: 64 73 28 29 20 77 68 65 72 65 62 79 20 6f 6e 6c  ds() whereby onl
5f40: 79 20 74 68 65 20 66 69 72 73 74 20 73 74 61 74  y the first stat
5f50: 65 6d 65 6e 74 20 0a 20 20 20 20 20 20 77 61 73  ement .      was
5f60: 20 62 65 69 6e 67 20 70 72 6f 70 65 72 6c 79 20   being properly 
5f70: 63 6c 65 61 6e 65 64 20 75 70 2e 0a 20 20 20 20  cleaned up..    
5f80: 20 20 3c 4c 49 3e 0a 20 20 20 20 20 20 46 69 78    <LI>.      Fix
5f90: 65 64 20 61 20 62 75 67 20 69 6e 20 53 51 4c 69  ed a bug in SQLi
5fa0: 74 65 44 61 74 61 52 65 61 64 65 72 20 77 68 65  teDataReader whe
5fb0: 72 65 62 79 20 63 61 6c 6c 69 6e 67 20 4e 65 78  reby calling Nex
5fc0: 74 52 65 73 75 6c 74 28 29 20 77 6f 75 6c 64 20  tResult() would 
5fd0: 6e 6f 74 20 70 72 6f 70 65 72 6c 79 20 0a 20 20  not properly .  
5fe0: 20 20 20 20 72 65 73 65 74 20 74 68 65 20 70 72      reset the pr
5ff0: 65 76 69 6f 75 73 6c 79 2d 65 78 65 63 75 74 65  eviously-execute
6000: 64 20 63 6f 6d 6d 61 6e 64 20 69 6e 20 74 68 65  d command in the
6010: 20 73 65 71 75 65 6e 63 65 2e 0a 20 20 20 20 20   sequence..     
6020: 20 3c 4c 49 3e 0a 20 20 20 20 20 20 20 20 41 64   <LI>.        Ad
6030: 64 65 64 20 61 6e 20 49 6e 73 65 72 74 4d 61 6e  ded an InsertMan
6040: 79 57 69 74 68 49 64 65 6e 74 69 74 79 46 65 74  yWithIdentityFet
6050: 63 68 20 74 65 73 74 2c 20 77 68 69 63 68 20 61  ch test, which a
6060: 70 70 65 6e 64 73 20 61 20 73 65 6c 65 63 74 20  ppends a select 
6070: 63 6c 61 75 73 65 20 74 6f 20 0a 20 20 20 20 20  clause to .     
6080: 20 20 20 70 6f 70 75 6c 61 74 65 20 74 68 65 20     populate the 
6090: 49 44 20 6f 66 20 74 68 65 20 6c 61 73 74 20 69  ID of the last i
60a0: 6e 73 65 72 74 65 64 20 72 6f 77 20 69 6e 74 6f  nserted row into
60b0: 20 74 68 65 20 49 6e 73 65 72 74 43 6f 6d 6d 61   the InsertComma
60c0: 6e 64 2c 20 64 65 6d 6f 6e 73 74 72 61 74 69 6e  nd, demonstratin
60d0: 67 20 0a 20 20 20 20 20 20 20 20 41 44 4f 2e 4e  g .        ADO.N
60e0: 45 54 27 73 20 61 62 69 6c 69 74 79 20 74 6f 20  ET's ability to 
60f0: 61 75 74 6f 2d 66 65 74 63 68 20 69 64 65 6e 74  auto-fetch ident
6100: 69 74 79 20 63 6f 6c 75 6d 6e 73 20 6f 6e 20 69  ity columns on i
6110: 6e 73 65 72 74 2e 0a 20 20 20 20 20 20 3c 2f 4c  nsert..      </L
6120: 49 3e 0a 20 20 20 20 3c 2f 55 4c 3e 0a 20 20 20  I>.    </UL>.   
6130: 20 3c 50 3e 3c 42 3e 31 2e 30 2e 30 32 20 2d 20   <P><B>1.0.02 - 
6140: 46 65 62 20 32 31 2c 20 32 30 30 35 3c 2f 42 3e  Feb 21, 2005</B>
6150: 3c 2f 50 3e 0a 20 20 20 20 3c 55 4c 3e 0a 20 20  </P>.    <UL>.  
6160: 20 20 20 20 3c 4c 49 3e 0a 20 20 20 20 20 20 54      <LI>.      T
6170: 77 65 61 6b 73 20 74 6f 20 74 68 65 20 78 78 78  weaks to the xxx
6180: 5f 69 6e 74 65 72 6f 70 20 66 75 6e 63 74 69 6f  _interop functio
6190: 6e 73 20 74 68 61 74 20 72 65 74 75 72 6e 20 63  ns that return c
61a0: 68 61 72 20 2a 27 73 2c 20 73 6f 20 74 68 65 79  har *'s, so they
61b0: 20 61 6c 73 6f 20 72 65 74 75 72 6e 20 0a 20 20   also return .  
61c0: 20 20 20 20 74 68 65 20 6c 65 6e 67 74 68 2e 26      the length.&
61d0: 6e 62 73 70 3b 20 53 61 76 65 73 20 61 6e 20 69  nbsp; Saves an i
61e0: 6e 74 65 72 6f 70 20 63 61 6c 6c 20 74 6f 20 67  nterop call to g
61f0: 65 74 20 74 68 65 20 55 54 46 2d 38 20 73 74 72  et the UTF-8 str
6200: 69 6e 67 20 6c 65 6e 67 74 68 20 64 75 72 69 6e  ing length durin
6210: 67 20 0a 20 20 20 20 20 20 63 6f 6e 76 65 72 73  g .      convers
6220: 69 6f 6e 20 74 6f 20 61 20 2e 4e 45 54 20 73 74  ion to a .NET st
6230: 72 69 6e 67 2e 0a 20 20 20 20 20 20 3c 4c 49 3e  ring..      <LI>
6240: 0a 20 20 20 20 20 20 52 65 77 6f 72 6b 65 64 20  .      Reworked 
6250: 74 68 65 20 77 68 6f 6c 65 20 69 6e 74 65 72 6f  the whole intero
6260: 70 2e 63 20 74 68 69 6e 67 20 69 6e 74 6f 20 69  p.c thing into i
6270: 6e 74 65 72 6f 70 2e 68 20 61 6e 64 20 72 65 64  nterop.h and red
6280: 75 63 65 64 20 74 68 65 20 63 6f 64 65 20 72 65  uced the code re
6290: 71 75 69 72 65 64 20 0a 20 20 20 20 20 20 74 6f  quired .      to
62a0: 20 6d 65 72 67 65 20 74 68 65 20 6d 61 69 6e 20   merge the main 
62b0: 73 71 6c 69 74 65 33 20 63 6f 64 65 62 61 73 65  sqlite3 codebase
62c0: 2e 0a 20 20 20 20 20 20 3c 4c 49 3e 0a 20 20 20  ..      <LI>.   
62d0: 20 20 20 20 20 41 64 64 65 64 20 73 75 70 70 6f       Added suppo
62e0: 72 74 20 66 6f 72 20 75 73 65 72 2d 64 65 66 69  rt for user-defi
62f0: 6e 65 64 20 63 6f 6c 6c 61 74 69 6f 6e 73 2e 0a  ned collations..
6300: 20 20 20 20 20 20 3c 2f 4c 49 3e 0a 20 20 20 20        </LI>.    
6310: 3c 2f 55 4c 3e 0a 20 20 3c 2f 62 6f 64 79 3e 0a  </UL>.  </body>.
6320: 3c 2f 68 74 6d 6c 3e 0a                          </html>.