System.Data.SQLite
Hex Artifact Content
Not logged in

Artifact 13f726f242c835af2bb45b6cc1c044c6f61a83ce:


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 31 20 2d 20 44 65 63 20 31 39 2c 20 32  24.1 - Dec 19, 2
00c0: 30 30 35 3c 62 72 3e 0a 20 20 20 20 49 6e 74 65  005<br>.    Inte
00d0: 72 6f 70 20 75 73 69 6e 67 20 53 51 4c 69 74 65  rop using SQLite
00e0: 20 33 2e 32 2e 38 3c 62 72 3e 0a 20 20 20 20 57   3.2.8<br>.    W
00f0: 72 69 74 74 65 6e 20 62 79 20 52 6f 62 65 72 74  ritten by Robert
0100: 20 53 69 6d 70 73 6f 6e 20 28 3c 61 20 68 72 65   Simpson (<a hre
0110: 66 3d 22 6d 61 69 6c 74 6f 3a 72 6f 62 65 72 74  f="mailto:robert
0120: 40 62 6c 61 63 6b 63 61 73 74 6c 65 73 6f 66 74  @blackcastlesoft
0130: 2e 63 6f 6d 22 3e 72 6f 62 65 72 74 40 62 6c 61  .com">robert@bla
0140: 63 6b 63 61 73 74 6c 65 73 6f 66 74 2e 63 6f 6d  ckcastlesoft.com
0150: 3c 2f 61 3e 29 3c 62 72 3e 0a 20 20 20 20 52 65  </a>)<br>.    Re
0160: 6c 65 61 73 65 64 20 74 6f 20 74 68 65 20 70 75  leased to the pu
0170: 62 6c 69 63 20 64 6f 6d 61 69 6e 2c 20 75 73 65  blic domain, use
0180: 20 61 74 20 79 6f 75 72 20 6f 77 6e 20 72 69 73   at your own ris
0190: 6b 21 3c 62 72 3e 0a 20 20 20 20 3c 62 72 3e 0a  k!<br>.    <br>.
01a0: 20 20 20 20 54 68 65 20 6c 61 74 65 73 74 20 76      The latest v
01b0: 65 72 73 69 6f 6e 20 63 61 6e 20 62 65 20 64 6f  ersion can be do
01c0: 77 6e 6c 6f 61 64 65 64 20 3c 61 20 68 72 65 66  wnloaded <a href
01d0: 3d 22 68 74 74 70 3a 2f 2f 73 6f 75 72 63 65 66  ="http://sourcef
01e0: 6f 72 67 65 2e 6e 65 74 2f 70 72 6f 6a 65 63 74  orge.net/project
01f0: 73 2f 73 71 6c 69 74 65 2d 64 6f 74 6e 65 74 32  s/sqlite-dotnet2
0200: 22 3e 0a 20 20 20 20 20 20 68 65 72 65 3c 2f 61  ">.      here</a
0210: 3e 0a 20 20 20 20 3c 62 72 3e 0a 20 20 20 20 3c  >.    <br>.    <
0220: 62 72 3e 0a 20 20 20 20 3c 62 3e 3c 2f 62 3e 0a  br>.    <b></b>.
0230: 20 20 20 20 3c 68 32 3e 0a 20 20 20 20 20 20 3c      <h2>.      <
0240: 62 3e 46 65 61 74 75 72 65 73 3a 3c 2f 62 3e 3c  b>Features:</b><
0250: 62 72 3e 0a 20 20 20 20 3c 2f 68 32 3e 0a 20 20  br>.    </h2>.  
0260: 20 20 3c 55 4c 3e 0a 20 20 20 20 20 20 3c 4c 49    <UL>.      <LI
0270: 3e 0a 20 20 20 20 20 20 53 75 70 70 6f 72 74 73  >.      Supports
0280: 26 6e 62 73 70 3b 74 68 65 20 46 75 6c 6c 20 61  &nbsp;the Full a
0290: 6e 64 20 43 6f 6d 70 61 63 74 20 2e 4e 45 54 20  nd Compact .NET 
02a0: 46 72 61 6d 65 77 6f 72 6b 2e 0a 20 20 20 20 20  Framework..     
02b0: 20 3c 4c 49 3e 0a 20 20 20 20 20 20 4f 6e 20 74   <LI>.      On t
02c0: 68 65 20 43 6f 6d 70 61 63 74 20 46 72 61 6d 65  he Compact Frame
02d0: 77 6f 72 6b 2c 20 69 74 20 69 73 20 66 61 73 74  work, it is fast
02e0: 65 72 20 74 68 61 6e 20 74 68 65 20 6e 65 77 6c  er than the newl
02f0: 79 2d 69 6e 74 72 6f 64 75 63 65 64 20 53 71 6c  y-introduced Sql
0300: 20 53 65 72 76 65 72 20 0a 20 20 20 20 20 20 4d   Server .      M
0310: 6f 62 69 6c 65 2c 20 6f 66 74 65 6e 20 6d 6f 72  obile, often mor
0320: 65 20 74 68 61 6e 20 31 30 78 20 66 61 73 74 65  e than 10x faste
0330: 72 20 61 74 20 69 6e 73 65 72 74 73 2f 75 70 64  r at inserts/upd
0340: 61 74 65 73 2e 26 6e 62 73 70 3b 20 53 51 4c 69  ates.&nbsp; SQLi
0350: 74 65 20 64 61 74 61 62 61 73 65 73 20 0a 20 20  te databases .  
0360: 20 20 20 20 61 72 65 20 61 6c 73 6f 20 61 20 66      are also a f
0370: 72 61 63 74 69 6f 6e 20 6f 66 20 74 68 65 20 73  raction of the s
0380: 69 7a 65 20 6f 66 20 53 71 6c 20 4d 6f 62 69 6c  ize of Sql Mobil
0390: 65 20 64 61 74 61 62 61 73 65 73 2e 0a 20 20 20  e databases..   
03a0: 20 20 20 3c 4c 49 3e 0a 20 20 20 20 20 20 46 75     <LI>.      Fu
03b0: 6c 6c 20 56 69 73 75 61 6c 20 53 74 75 64 69 6f  ll Visual Studio
03c0: 20 32 30 30 35 20 44 65 73 69 67 6e 2d 54 69 6d   2005 Design-Tim
03d0: 65 20 53 75 70 70 6f 72 74 2e 26 6e 62 73 70 3b  e Support.&nbsp;
03e0: 20 59 6f 75 20 63 61 6e 20 61 64 64 20 61 20 53   You can add a S
03f0: 51 4c 69 74 65 20 0a 20 20 20 20 20 20 64 61 74  QLite .      dat
0400: 61 62 61 73 65 20 74 6f 20 74 68 65 20 53 65 72  abase to the Ser
0410: 76 65 72 73 20 6c 69 73 74 2c 20 64 65 73 69 67  vers list, desig
0420: 6e 20 71 75 65 72 69 65 73 20 77 69 74 68 20 74  n queries with t
0430: 68 65 20 51 75 65 72 79 20 44 65 73 69 67 6e 65  he Query Designe
0440: 72 2c 20 0a 20 20 20 20 20 20 64 72 61 67 2d 61  r, .      drag-a
0450: 6e 64 2d 64 72 6f 70 20 74 61 62 6c 65 73 20 6f  nd-drop tables o
0460: 6e 74 6f 20 61 20 54 79 70 65 64 20 44 61 74 61  nto a Typed Data
0470: 53 65 74 2c 20 65 74 63 2e 0a 20 20 20 20 20 20  Set, etc..      
0480: 3c 4c 49 3e 0a 20 20 20 20 20 20 53 69 6e 67 6c  <LI>.      Singl
0490: 65 20 66 69 6c 65 20 72 65 64 69 73 74 72 69 62  e file redistrib
04a0: 75 74 61 62 6c 65 20 66 6f 72 20 74 68 65 20 66  utable for the f
04b0: 75 6c 6c 20 2e 6e 65 74 20 66 72 61 6d 65 77 6f  ull .net framewo
04c0: 72 6b 20 28 43 6f 6d 70 61 63 74 20 46 72 61 6d  rk (Compact Fram
04d0: 65 77 6f 72 6b 20 0a 20 20 20 20 20 20 72 65 71  ework .      req
04e0: 75 69 72 65 73 20 32 20 62 69 6e 61 72 69 65 73  uires 2 binaries
04f0: 29 2e 26 6e 62 73 70 3b 20 54 68 65 20 63 6f 72  ).&nbsp; The cor
0500: 65 20 73 71 6c 69 74 65 33 20 63 6f 64 65 62 61  e sqlite3 codeba
0510: 73 65 20 61 6e 64 20 74 68 65 20 41 44 4f 2e 4e  se and the ADO.N
0520: 45 54 20 77 72 61 70 70 65 72 20 0a 20 20 20 20  ET wrapper .    
0530: 20 20 61 72 65 20 63 6f 6d 62 69 6e 65 64 20 69    are combined i
0540: 6e 74 6f 20 6f 6e 65 20 6d 75 6c 74 69 2d 6d 6f  nto one multi-mo
0550: 64 75 6c 65 20 61 73 73 65 6d 62 6c 79 2e 0a 20  dule assembly.. 
0560: 20 20 20 20 20 3c 4c 49 3e 0a 20 20 20 20 20 20       <LI>.      
0570: 4e 61 74 69 76 65 20 36 34 2d 62 69 74 20 6d 75  Native 64-bit mu
0580: 6c 74 69 2d 6d 6f 64 75 6c 65 20 61 73 73 65 6d  lti-module assem
0590: 62 6c 69 65 73 20 66 6f 72 20 49 74 61 6e 69 75  blies for Itaniu
05a0: 6d 20 61 6e 64 20 58 36 34 20 70 72 6f 63 65 73  m and X64 proces
05b0: 73 6f 72 73 2e 0a 20 20 20 20 20 20 3c 4c 49 3e  sors..      <LI>
05c0: 0a 20 20 20 20 20 20 44 62 50 72 6f 76 69 64 65  .      DbProvide
05d0: 72 46 61 63 74 6f 72 79 20 73 75 70 70 6f 72 74  rFactory support
05e0: 2e 0a 20 20 20 20 20 20 3c 4c 49 3e 0a 20 20 20  ..      <LI>.   
05f0: 20 20 20 20 20 46 75 6c 6c 20 73 75 70 70 6f 72       Full suppor
0600: 74 20 66 6f 72 20 41 54 54 41 43 48 27 65 64 20  t for ATTACH'ed 
0610: 64 61 74 61 62 61 73 65 73 2e 26 6e 62 73 70 3b  databases.&nbsp;
0620: 20 45 78 70 6f 73 65 64 20 61 73 20 3c 49 3e 43   Exposed as <I>C
0630: 61 74 61 6c 6f 67 73 3c 2f 49 3e 0a 20 20 20 20  atalogs</I>.    
0640: 20 20 69 6e 20 74 68 65 20 73 63 68 65 6d 61 2e    in the schema.
0650: 26 6e 62 73 70 3b 20 57 68 65 6e 20 63 6c 6f 6e  &nbsp; When clon
0660: 69 6e 67 20 61 20 63 6f 6e 6e 65 63 74 69 6f 6e  ing a connection
0670: 2c 20 61 6c 6c 20 61 74 74 61 63 68 65 64 20 64  , all attached d
0680: 61 74 61 62 61 73 65 73 20 61 72 65 20 0a 20 20  atabases are .  
0690: 20 20 20 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c      automaticall
06a0: 79 20 72 65 2d 61 74 74 61 63 68 65 64 20 74 6f  y re-attached to
06b0: 20 74 68 65 20 6e 65 77 20 63 6f 6e 6e 65 63 74   the new connect
06c0: 69 6f 6e 2e 0a 20 20 20 20 20 20 3c 4c 49 3e 0a  ion..      <LI>.
06d0: 20 20 20 20 20 20 20 20 44 62 43 6f 6e 6e 65 63          DbConnec
06e0: 74 69 6f 6e 2e 47 65 74 53 63 68 65 6d 61 28 2e  tion.GetSchema(.
06f0: 2e 2e 29 20 73 75 70 70 6f 72 74 20 69 6e 63 6c  ..) support incl
0700: 75 64 65 73 20 74 68 65 20 3c 49 3e 4d 65 74 61  udes the <I>Meta
0710: 44 61 74 61 43 6f 6c 6c 65 63 74 69 6f 6e 73 3c  DataCollections<
0720: 2f 49 3e 2c 20 3c 49 3e 44 61 74 61 53 6f 75 72  /I>, <I>DataSour
0730: 63 65 49 6e 66 6f 72 6d 61 74 69 6f 6e 3c 2f 49  ceInformation</I
0740: 3e 2c 0a 20 20 20 20 20 20 20 20 3c 49 3e 43 6f  >,.        <I>Co
0750: 6c 75 6d 6e 73 3c 2f 49 3e 2c 20 3c 49 3e 54 61  lumns</I>, <I>Ta
0760: 62 6c 65 73 3c 2f 49 3e 2c 20 3c 49 3e 56 69 65  bles</I>, <I>Vie
0770: 77 73 2c 20 56 69 65 77 43 6f 6c 75 6d 6e 73 2c  ws, ViewColumns,
0780: 20 3c 2f 49 3e 3c 49 3e 43 61 74 61 6c 6f 67 73   </I><I>Catalogs
0790: 2c 20 3c 2f 49 3e 3c 49 3e 49 6e 64 65 78 65 73  , </I><I>Indexes
07a0: 2c 20 0a 20 20 20 20 20 20 20 20 20 20 49 6e 64  , .          Ind
07b0: 65 78 43 6f 6c 75 6d 6e 73 20 3c 2f 49 3e 61 6e  exColumns </I>an
07c0: 64 20 3c 45 4d 3e 46 6f 72 65 69 67 6e 4b 65 79  d <EM>ForeignKey
07d0: 73 3c 2f 45 4d 3e 0a 20 20 20 20 20 20 6b 65 79  s</EM>.      key
07e0: 77 6f 72 64 73 2e 0a 20 20 20 20 20 20 3c 4c 49  words..      <LI
07f0: 3e 0a 20 20 20 20 20 20 45 6e 68 61 6e 63 65 64  >.      Enhanced
0800: 20 44 62 44 61 74 61 52 65 61 64 65 72 2e 47 65   DbDataReader.Ge
0810: 74 53 63 68 65 6d 61 54 61 62 6c 65 28 29 20 66  tSchemaTable() f
0820: 75 6e 63 74 69 6f 6e 61 6c 69 74 79 20 72 65 74  unctionality ret
0830: 75 72 6e 73 20 63 61 74 61 6c 6f 67 2c 20 6e 61  urns catalog, na
0840: 6d 65 73 70 61 63 65 20 0a 20 20 20 20 20 20 61  mespace .      a
0850: 6e 64 20 64 65 74 61 69 6c 65 64 20 73 63 68 65  nd detailed sche
0860: 6d 61 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 65  ma information e
0870: 76 65 6e 20 66 6f 72 20 63 6f 6d 70 6c 65 78 20  ven for complex 
0880: 71 75 65 72 69 65 73 2e 0a 20 20 20 20 20 20 3c  queries..      <
0890: 4c 49 3e 0a 20 20 20 20 20 20 4e 61 6d 65 64 20  LI>.      Named 
08a0: 61 6e 64 20 75 6e 6e 61 6d 65 64 20 70 61 72 61  and unnamed para
08b0: 6d 65 74 65 72 73 2e 0a 20 20 20 20 20 20 3c 4c  meters..      <L
08c0: 49 3e 0a 20 20 20 20 20 20 46 75 6c 6c 20 55 54  I>.      Full UT
08d0: 46 2d 38 20 61 6e 64 20 55 54 46 2d 31 36 20 73  F-8 and UTF-16 s
08e0: 75 70 70 6f 72 74 2c 20 65 61 63 68 20 77 69 74  upport, each wit
08f0: 68 20 6f 70 74 69 6d 69 7a 65 64 20 70 69 70 65  h optimized pipe
0900: 6c 69 6e 65 73 20 69 6e 74 6f 20 74 68 65 20 6e  lines into the n
0910: 61 74 69 76 65 20 0a 20 20 20 20 20 20 64 61 74  ative .      dat
0920: 61 62 61 73 65 20 63 6f 72 65 2e 0a 20 20 20 20  abase core..    
0930: 20 20 3c 4c 49 3e 0a 20 20 20 20 20 20 4d 75 6c    <LI>.      Mul
0940: 74 69 70 6c 65 20 73 69 6d 75 6c 74 61 6e 65 6f  tiple simultaneo
0950: 75 73 20 44 61 74 61 52 65 61 64 65 72 73 20 28  us DataReaders (
0960: 6f 6e 65 20 44 61 74 61 52 65 61 64 65 72 20 70  one DataReader p
0970: 65 72 20 43 6f 6d 6d 61 6e 64 20 68 6f 77 65 76  er Command howev
0980: 65 72 29 2e 0a 20 20 20 20 20 20 3c 4c 49 3e 0a  er)..      <LI>.
0990: 20 20 20 20 20 20 46 75 6c 6c 20 73 75 70 70 6f        Full suppo
09a0: 72 74 20 66 6f 72 20 75 73 65 72 2d 64 65 66 69  rt for user-defi
09b0: 6e 65 64 20 73 63 61 6c 61 72 20 61 6e 64 20 61  ned scalar and a
09c0: 67 67 72 65 67 61 74 65 20 66 75 6e 63 74 69 6f  ggregate functio
09d0: 6e 73 2c 20 65 6e 63 61 70 73 75 6c 61 74 65 64  ns, encapsulated
09e0: 20 69 6e 74 6f 20 0a 20 20 20 20 20 20 61 6e 20   into .      an 
09f0: 65 61 73 79 2d 74 6f 2d 75 73 65 20 62 61 73 65  easy-to-use base
0a00: 20 63 6c 61 73 73 20 69 6e 20 77 68 69 63 68 20   class in which 
0a10: 6f 6e 6c 79 20 61 20 63 6f 75 70 6c 65 20 6f 66  only a couple of
0a20: 20 6f 76 65 72 72 69 64 65 73 20 61 72 65 20 6e   overrides are n
0a30: 65 63 65 73 73 61 72 79 20 74 6f 20 0a 20 20 20  ecessary to .   
0a40: 20 20 20 69 6d 70 6c 65 6d 65 6e 74 20 6e 65 77     implement new
0a50: 20 53 51 4c 20 66 75 6e 63 74 69 6f 6e 73 2e 0a   SQL functions..
0a60: 20 20 20 20 20 20 3c 4c 49 3e 0a 20 20 20 20 20        <LI>.     
0a70: 20 46 75 6c 6c 20 73 75 70 70 6f 72 74 20 66 6f   Full support fo
0a80: 72 20 75 73 65 72 2d 64 65 66 69 6e 65 64 20 63  r user-defined c
0a90: 6f 6c 6c 61 74 69 6e 67 20 73 65 71 75 65 6e 63  ollating sequenc
0aa0: 65 73 2c 20 65 76 65 72 79 20 62 69 74 20 61 73  es, every bit as
0ab0: 20 73 69 6d 70 6c 65 20 74 6f 20 0a 20 20 20 20   simple to .    
0ac0: 20 20 69 6d 70 6c 65 6d 65 6e 74 20 61 73 20 75    implement as u
0ad0: 73 65 72 2d 64 65 66 69 6e 65 64 20 66 75 6e 63  ser-defined func
0ae0: 74 69 6f 6e 73 20 61 6e 64 20 75 73 65 73 20 74  tions and uses t
0af0: 68 65 20 73 61 6d 65 20 62 61 73 65 20 63 6c 61  he same base cla
0b00: 73 73 2e 0a 20 20 20 20 20 20 3c 4c 49 3e 0a 20  ss..      <LI>. 
0b10: 20 20 20 20 20 43 72 65 61 74 65 20 61 6e 64 20       Create and 
0b20: 65 6e 63 72 79 70 74 20 64 61 74 61 62 61 73 65  encrypt database
0b30: 73 20 75 73 69 6e 67 20 57 69 6e 32 4b 2b 20 45  s using Win2K+ E
0b40: 6e 63 72 79 70 74 69 6e 67 20 46 69 6c 65 20 53  ncrypting File S
0b50: 79 73 74 65 6d 20 28 45 46 53 29 2e 20 0a 20 20  ystem (EFS). .  
0b60: 20 20 20 20 53 75 70 70 6f 72 74 73 20 63 72 65      Supports cre
0b70: 61 74 69 6e 67 20 4e 54 46 53 20 63 6f 6d 70 72  ating NTFS compr
0b80: 65 73 73 65 64 20 64 61 74 61 62 61 73 65 20 66  essed database f
0b90: 69 6c 65 73 2e 0a 20 20 20 20 20 20 3c 4c 49 3e  iles..      <LI>
0ba0: 0a 20 20 20 20 20 20 20 20 46 75 6c 6c 20 73 6f  .        Full so
0bb0: 75 72 63 65 20 66 6f 72 20 74 68 65 20 65 6e 74  urce for the ent
0bc0: 69 72 65 20 65 6e 67 69 6e 65 20 61 6e 64 20 77  ire engine and w
0bd0: 72 61 70 70 65 72 2e 26 6e 62 73 70 3b 20 4e 6f  rapper.&nbsp; No
0be0: 20 63 6f 70 79 72 69 67 68 74 73 2e 26 6e 62 73   copyrights.&nbs
0bf0: 70 3b 20 0a 20 20 20 20 20 20 20 20 50 75 62 6c  p; .        Publ
0c00: 69 63 20 44 6f 6d 61 69 6e 2e 26 6e 62 73 70 3b  ic Domain.&nbsp;
0c10: 20 31 30 30 25 20 66 72 65 65 2e 26 6e 62 73 70   100% free.&nbsp
0c20: 3b 20 49 66 20 79 6f 75 20 77 61 6e 74 20 74 6f  ; If you want to
0c30: 20 6b 6e 6f 77 20 69 66 20 79 6f 75 20 63 61 6e   know if you can
0c40: 20 75 73 65 20 69 74 20 69 6e 20 0a 20 20 20 20   use it in .    
0c50: 20 20 20 20 79 6f 75 72 20 63 6f 6d 6d 65 72 63      your commerc
0c60: 69 61 6c 20 70 72 6f 6a 65 63 74 2c 20 70 6c 65  ial project, ple
0c70: 61 73 65 20 72 65 61 64 20 74 68 65 20 70 72 65  ase read the pre
0c80: 76 69 6f 75 73 20 73 65 6e 74 65 6e 63 65 20 61  vious sentence a
0c90: 67 61 69 6e 20 2d 2d 20 6f 6e 6c 79 20 73 6c 6f  gain -- only slo
0ca0: 77 65 72 20 0a 20 20 20 20 20 20 20 20 61 6e 64  wer .        and
0cb0: 20 73 6f 75 6e 64 20 6f 75 74 20 74 68 65 20 77   sound out the w
0cc0: 6f 72 64 73 20 74 68 69 73 20 74 69 6d 65 2e 0a  ords this time..
0cd0: 20 20 20 20 20 20 3c 2f 4c 49 3e 0a 20 20 20 20        </LI>.    
0ce0: 3c 2f 55 4c 3e 0a 20 20 20 20 3c 73 74 72 6f 6e  </UL>.    <stron
0cf0: 67 3e 3c 2f 73 74 72 6f 6e 67 3e 0a 20 20 20 20  g></strong>.    
0d00: 3c 68 32 3e 0a 20 20 20 20 20 20 3c 73 74 72 6f  <h2>.      <stro
0d10: 6e 67 3e 44 65 73 69 67 6e 2d 54 69 6d 65 20 53  ng>Design-Time S
0d20: 75 70 70 6f 72 74 20 28 6e 65 77 20 61 73 20 6f  upport (new as o
0d30: 66 20 31 2e 30 2e 31 34 29 3c 2f 73 74 72 6f 6e  f 1.0.14)</stron
0d40: 67 3e 3c 2f 68 32 3e 0a 20 20 20 20 3c 50 3e 55  g></h2>.    <P>U
0d50: 6e 74 69 6c 20 61 6e 20 69 6e 73 74 61 6c 6c 65  ntil an installe
0d60: 72 20 69 73 20 63 72 65 61 74 65 64 2c 20 74 68  r is created, th
0d70: 72 6f 75 67 68 20 61 20 63 6f 6d 6d 61 6e 64 2d  rough a command-
0d80: 70 72 6f 6d 70 74 20 6f 72 20 57 69 6e 64 6f 77  prompt or Window
0d90: 73 20 45 78 70 6c 6f 72 65 72 2c 20 6e 61 76 69  s Explorer, navi
0da0: 67 61 74 65 20 74 6f 20 74 68 65 20 3c 53 54 52  gate to the <STR
0db0: 4f 4e 47 3e 53 51 4c 69 74 65 2e 4e 45 54 5c 62  ONG>SQLite.NET\b
0dc0: 69 6e 5c 44 65 73 69 67 6e 65 72 3c 2f 53 54 52  in\Designer</STR
0dd0: 4f 4e 47 3e 0a 20 20 20 20 20 20 20 20 66 6f 6c  ONG>.        fol
0de0: 64 65 72 20 61 6e 64 20 65 78 65 63 75 74 65 20  der and execute 
0df0: 74 68 65 20 3c 53 54 52 4f 4e 47 3e 49 4e 53 54  the <STRONG>INST
0e00: 41 4c 4c 2e 43 4d 44 3c 2f 53 54 52 4f 4e 47 3e  ALL.CMD</STRONG>
0e10: 0a 20 20 20 20 20 20 66 69 6c 65 2e 26 6e 62 73  .      file.&nbs
0e20: 70 3b 20 54 68 65 20 73 63 72 69 70 74 20 61 6e  p; The script an
0e30: 64 0a 20 20 20 20 20 20 62 61 74 63 68 20 66 69  d.      batch fi
0e40: 6c 65 20 77 69 6c 6c 20 72 65 67 69 73 74 65 72  le will register
0e50: 20 74 68 65 20 53 79 73 74 65 6d 2e 44 61 74 61   the System.Data
0e60: 2e 53 51 4c 69 74 65 20 44 4c 4c 20 69 6e 20 74  .SQLite DLL in t
0e70: 68 65 20 47 6c 6f 62 61 6c 20 41 73 73 65 6d 62  he Global Assemb
0e80: 6c 79 20 43 61 63 68 65 2c 0a 20 20 20 20 20 20  ly Cache,.      
0e90: 61 6e 64 20 6d 6f 64 69 66 79 20 74 68 65 20 6d  and modify the m
0ea0: 61 63 68 69 6e 65 2e 63 6f 6e 66 69 67 20 66 69  achine.config fi
0eb0: 6c 65 20 74 6f 20 61 64 64 20 53 51 4c 69 74 65  le to add SQLite
0ec0: 20 74 6f 20 74 68 65 20 6c 69 73 74 20 6f 66 20   to the list of 
0ed0: 64 65 66 61 75 6c 74 20 64 61 74 61 20 70 72 6f  default data pro
0ee0: 76 69 64 65 72 73 2e 3c 2f 50 3e 0a 20 20 20 20  viders.</P>.    
0ef0: 3c 48 32 3e 3c 53 54 52 4f 4e 47 3e 44 62 46 61  <H2><STRONG>DbFa
0f00: 63 74 6f 72 79 20 53 75 70 70 6f 72 74 20 28 4e  ctory Support (N
0f10: 6f 6e 2d 43 6f 6d 70 61 63 74 20 46 72 61 6d 65  on-Compact Frame
0f20: 77 6f 72 6b 29 3c 2f 53 54 52 4f 4e 47 3e 3c 2f  work)</STRONG></
0f30: 48 32 3e 0a 20 20 20 20 49 6e 20 6f 72 64 65 72  H2>.    In order
0f40: 20 74 6f 20 75 73 65 20 74 68 65 20 53 51 4c 69   to use the SQLi
0f50: 74 65 46 61 63 74 6f 72 79 20 61 6e 64 20 68 61  teFactory and ha
0f60: 76 65 20 74 68 65 20 53 51 4c 69 74 65 20 64 61  ve the SQLite da
0f70: 74 61 20 70 72 6f 76 69 64 65 72 20 65 6e 75 6d  ta provider enum
0f80: 65 72 61 74 65 64 20 0a 20 20 20 20 69 6e 20 74  erated .    in t
0f90: 68 65 20 44 62 50 72 6f 76 69 64 65 72 46 61 63  he DbProviderFac
0fa0: 74 6f 72 69 65 73 20 6d 65 74 68 6f 64 73 2c 20  tories methods, 
0fb0: 79 6f 75 20 6d 75 73 74 20 61 64 64 20 74 68 65  you must add the
0fc0: 20 66 6f 6c 6c 6f 77 69 6e 67 20 73 65 67 6d 65   following segme
0fd0: 6e 74 20 69 6e 74 6f 20 79 6f 75 72 20 61 70 70  nt into your app
0fe0: 6c 69 63 61 74 69 6f 6e 27 73 20 61 70 70 2e 63  lication's app.c
0ff0: 6f 6e 66 69 67 20 66 69 6c 65 3a 3c 62 72 3e 0a  onfig file:<br>.
1000: 20 20 20 20 3c 62 72 3e 0a 20 20 20 20 3c 70 72      <br>.    <pr
1010: 65 3e 26 6c 74 3b 63 6f 6e 66 69 67 75 72 61 74  e>&lt;configurat
1020: 69 6f 6e 26 67 74 3b 0a 20 20 26 6c 74 3b 73 79  ion&gt;.  &lt;sy
1030: 73 74 65 6d 2e 64 61 74 61 26 67 74 3b 0a 20 20  stem.data&gt;.  
1040: 20 20 26 6c 74 3b 44 62 50 72 6f 76 69 64 65 72    &lt;DbProvider
1050: 46 61 63 74 6f 72 69 65 73 26 67 74 3b 0a 20 20  Factories&gt;.  
1060: 20 20 20 20 26 6c 74 3b 72 65 6d 6f 76 65 20 69      &lt;remove i
1070: 6e 76 61 72 69 61 6e 74 3d 22 53 79 73 74 65 6d  nvariant="System
1080: 2e 44 61 74 61 2e 53 51 4c 69 74 65 22 2f 26 67  .Data.SQLite"/&g
1090: 74 3b 0a 20 20 20 20 20 20 26 6c 74 3b 61 64 64  t;.      &lt;add
10a0: 20 6e 61 6d 65 3d 22 53 51 4c 69 74 65 20 44 61   name="SQLite Da
10b0: 74 61 20 50 72 6f 76 69 64 65 72 22 20 69 6e 76  ta Provider" inv
10c0: 61 72 69 61 6e 74 3d 22 53 79 73 74 65 6d 2e 44  ariant="System.D
10d0: 61 74 61 2e 53 51 4c 69 74 65 22 20 64 65 73 63  ata.SQLite" desc
10e0: 72 69 70 74 69 6f 6e 3d 22 2e 4e 65 74 20 46 72  ription=".Net Fr
10f0: 61 6d 65 77 6f 72 6b 20 44 61 74 61 20 50 72 6f  amework Data Pro
1100: 76 69 64 65 72 20 66 6f 72 20 53 51 4c 69 74 65  vider for SQLite
1110: 22 3c 42 52 20 3e 20 74 79 70 65 3d 22 53 79 73  "<BR > type="Sys
1120: 74 65 6d 2e 44 61 74 61 2e 53 51 4c 69 74 65 2e  tem.Data.SQLite.
1130: 53 51 4c 69 74 65 46 61 63 74 6f 72 79 2c 20 53  SQLiteFactory, S
1140: 79 73 74 65 6d 2e 44 61 74 61 2e 53 51 4c 69 74  ystem.Data.SQLit
1150: 65 22 20 2f 26 67 74 3b 0a 20 20 20 20 26 6c 74  e" /&gt;.    &lt
1160: 3b 2f 44 62 50 72 6f 76 69 64 65 72 46 61 63 74  ;/DbProviderFact
1170: 6f 72 69 65 73 26 67 74 3b 0a 20 20 26 6c 74 3b  ories&gt;.  &lt;
1180: 2f 73 79 73 74 65 6d 2e 64 61 74 61 26 67 74 3b  /system.data&gt;
1190: 0a 26 6c 74 3b 2f 63 6f 6e 66 69 67 75 72 61 74  .&lt;/configurat
11a0: 69 6f 6e 26 67 74 3b 0a 3c 2f 70 72 65 3e 0a 20  ion&gt;.</pre>. 
11b0: 20 20 20 3c 70 3e 53 65 65 20 74 68 65 20 68 65     <p>See the he
11c0: 6c 70 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e  lp documentation
11d0: 20 66 6f 72 20 66 75 72 74 68 65 72 20 64 65 74   for further det
11e0: 61 69 6c 73 20 6f 6e 20 69 6d 70 6c 65 6d 65 6e  ails on implemen
11f0: 74 69 6e 67 20 62 6f 74 68 20 76 65 72 73 69 6f  ting both versio
1200: 6e 2d 73 70 65 63 69 66 69 63 20 28 47 41 43 20  n-specific (GAC 
1210: 65 6e 61 62 6c 65 64 29 20 61 6e 64 20 76 65 72  enabled) and ver
1220: 73 69 6f 6e 20 69 6e 64 65 70 65 6e 64 65 6e 74  sion independent
1230: 20 44 42 50 72 6f 76 69 64 65 72 46 61 63 74 6f   DBProviderFacto
1240: 72 69 65 73 20 73 75 70 70 6f 72 74 2e 0a 20 20  ries support..  
1250: 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 3c 68 33      </p>.    <h3
1260: 3e 0a 20 20 20 20 20 20 43 6f 6d 70 69 6c 69 6e  >.      Compilin
1270: 67 20 66 6f 72 20 74 68 65 20 43 6f 6d 70 61 63  g for the Compac
1280: 74 20 46 72 61 6d 65 77 6f 72 6b 3c 2f 68 33 3e  t Framework</h3>
1290: 0a 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 4a  .    <p>.      J
12a0: 75 73 74 20 63 68 61 6e 67 65 20 74 68 65 20 74  ust change the t
12b0: 61 72 67 65 74 20 70 6c 61 74 66 6f 72 6d 20 66  arget platform f
12c0: 72 6f 6d 20 57 69 6e 33 32 20 74 6f 20 43 6f 6d  rom Win32 to Com
12d0: 70 61 63 74 20 46 72 61 6d 65 77 6f 72 6b 20 61  pact Framework a
12e0: 6e 64 20 0a 20 20 20 20 20 20 72 65 63 6f 6d 70  nd .      recomp
12f0: 69 6c 65 2e 26 6e 62 73 70 3b 20 3c 53 54 52 4f  ile.&nbsp; <STRO
1300: 4e 47 3e 54 68 65 20 43 6f 6d 70 61 63 74 20 46  NG>The Compact F
1310: 72 61 6d 65 77 6f 72 6b 20 68 61 73 20 6e 6f 20  ramework has no 
1320: 73 75 70 70 6f 72 74 20 66 6f 72 20 65 6e 75 6d  support for enum
1330: 65 72 61 74 69 6e 67 20 0a 20 20 20 20 20 20 20  erating .       
1340: 20 61 74 74 72 69 62 75 74 65 73 20 69 6e 20 61   attributes in a
1350: 6e 20 61 73 73 65 6d 62 6c 79 2c 20 74 68 65 72  n assembly, ther
1360: 65 66 6f 72 65 20 61 6c 6c 20 75 73 65 72 2d 64  efore all user-d
1370: 65 66 69 6e 65 64 20 63 6f 6c 6c 61 74 69 6e 67  efined collating
1380: 20 73 65 71 75 65 6e 63 65 73 20 61 6e 64 20 0a   sequences and .
1390: 20 20 20 20 20 20 20 20 66 75 6e 63 74 69 6f 6e          function
13a0: 73 20 6d 75 73 74 20 62 65 20 65 78 70 6c 69 63  s must be explic
13b0: 69 74 6c 79 20 72 65 67 69 73 74 65 72 65 64 2e  itly registered.
13c0: 3c 2f 53 54 52 4f 4e 47 3e 26 6e 62 73 70 3b 20  </STRONG>&nbsp; 
13d0: 53 65 65 20 74 68 65 20 3c 53 54 52 4f 4e 47 3e  See the <STRONG>
13e0: 74 65 73 74 63 65 3c 2f 53 54 52 4f 4e 47 3e 0a  testce</STRONG>.
13f0: 20 20 20 20 20 20 73 61 6d 70 6c 65 20 61 70 70        sample app
1400: 6c 69 63 61 74 69 6f 6e 20 66 6f 72 20 61 6e 20  lication for an 
1410: 65 78 61 6d 70 6c 65 20 6f 66 20 68 6f 77 20 74  example of how t
1420: 6f 20 65 78 70 6c 69 63 69 74 6c 79 20 72 65 67  o explicitly reg
1430: 69 73 74 65 72 20 75 73 65 72 2d 64 65 66 69 6e  ister user-defin
1440: 65 64 20 0a 20 20 20 20 20 20 63 6f 6c 6c 61 74  ed .      collat
1450: 69 6e 67 20 73 65 71 75 65 6e 63 65 73 20 61 6e  ing sequences an
1460: 64 20 66 75 6e 63 74 69 6f 6e 73 2e 3c 2f 70 3e  d functions.</p>
1470: 0a 20 20 20 20 3c 50 3e 4d 61 6e 79 20 74 68 61  .    <P>Many tha
1480: 6e 6b 73 20 74 6f 20 74 68 65 20 66 69 6e 65 20  nks to the fine 
1490: 66 6f 6c 6b 73 20 61 74 20 3c 41 20 68 72 65 66  folks at <A href
14a0: 3d 22 68 74 74 70 3a 2f 2f 73 6f 75 72 63 65 66  ="http://sourcef
14b0: 6f 72 67 65 2e 6e 65 74 2f 70 72 6f 6a 65 63 74  orge.net/project
14c0: 73 2f 73 71 6c 69 74 65 2d 77 69 6e 63 65 22 3e  s/sqlite-wince">
14d0: 0a 20 20 20 20 20 20 20 20 68 74 74 70 3a 2f 2f  .        http://
14e0: 73 6f 75 72 63 65 66 6f 72 67 65 2e 6e 65 74 2f  sourceforge.net/
14f0: 70 72 6f 6a 65 63 74 73 2f 73 71 6c 69 74 65 2d  projects/sqlite-
1500: 77 69 6e 63 65 3c 2f 41 3e 20 66 6f 72 20 74 68  wince</A> for th
1510: 65 20 57 69 6e 64 6f 77 73 20 43 45 20 63 6f 64  e Windows CE cod
1520: 65 21 3c 2f 50 3e 0a 20 20 20 20 3c 68 32 3e 0a  e!</P>.    <h2>.
1530: 20 20 20 20 20 20 3c 62 3e 3c 41 20 6e 61 6d 65        <b><A name
1540: 3d 22 72 65 64 69 73 74 22 3e 3c 2f 41 3e 44 69  ="redist"></A>Di
1550: 73 74 72 69 62 75 74 69 6e 67 20 54 68 65 20 53  stributing The S
1560: 51 4c 69 74 65 20 45 6e 67 69 6e 65 20 61 6e 64  QLite Engine and
1570: 20 41 44 4f 2e 4e 45 54 20 41 73 73 65 6d 62 6c   ADO.NET Assembl
1580: 79 3c 2f 62 3e 3c 2f 68 32 3e 0a 20 20 20 20 3c  y</b></h2>.    <
1590: 50 3e 46 6f 72 20 57 69 6e 33 32 20 70 6c 61 74  P>For Win32 plat
15a0: 66 6f 72 6d 73 2c 20 6f 6e 6c 79 20 74 68 65 20  forms, only the 
15b0: 3c 53 54 52 4f 4e 47 3e 53 79 73 74 65 6d 2e 44  <STRONG>System.D
15c0: 61 74 61 2e 53 51 4c 69 74 65 2e 44 4c 4c 3c 2f  ata.SQLite.DLL</
15d0: 53 54 52 4f 4e 47 3e 20 66 69 6c 65 20 69 6e 20  STRONG> file in 
15e0: 0a 20 20 20 20 20 20 74 68 65 20 3c 53 54 52 4f  .      the <STRO
15f0: 4e 47 3e 62 69 6e 3c 2f 53 54 52 4f 4e 47 3e 20  NG>bin</STRONG> 
1600: 66 6f 6c 64 65 72 20 73 68 6f 75 6c 64 20 62 65  folder should be
1610: 20 64 69 73 74 72 69 62 75 74 65 64 20 77 69 74   distributed wit
1620: 68 20 79 6f 75 72 20 0a 20 20 20 20 20 20 61 70  h your .      ap
1630: 70 6c 69 63 61 74 69 6f 6e 28 73 29 2e 26 6e 62  plication(s).&nb
1640: 73 70 3b 20 54 68 69 73 20 44 4c 4c 20 63 6f 6e  sp; This DLL con
1650: 74 61 69 6e 73 20 62 6f 74 68 20 74 68 65 20 6d  tains both the m
1660: 61 6e 61 67 65 64 20 77 72 61 70 70 65 72 20 61  anaged wrapper a
1670: 6e 64 20 74 68 65 20 6e 61 74 69 76 65 20 0a 20  nd the native . 
1680: 20 20 20 20 20 53 51 4c 69 74 65 33 20 63 6f 64       SQLite3 cod
1690: 65 62 61 73 65 2e 3c 2f 50 3e 0a 20 20 20 20 3c  ebase.</P>.    <
16a0: 50 3e 46 6f 72 20 43 6f 6d 70 61 63 74 20 46 72  P>For Compact Fr
16b0: 61 6d 65 77 6f 72 6b 20 70 6c 61 74 66 6f 72 6d  amework platform
16c0: 73 2c 20 79 6f 75 72 20 61 70 70 6c 69 63 61 74  s, your applicat
16d0: 69 6f 6e 20 73 68 6f 75 6c 64 20 72 65 66 65 72  ion should refer
16e0: 65 6e 63 65 20 74 68 65 20 3c 53 54 52 4f 4e 47  ence the <STRONG
16f0: 3e 53 79 73 74 65 6d 2e 44 61 74 61 2e 53 51 4c  >System.Data.SQL
1700: 69 74 65 2e 44 4c 4c 3c 2f 53 54 52 4f 4e 47 3e  ite.DLL</STRONG>
1710: 0a 20 20 20 20 20 20 66 69 6c 65 20 69 6e 20 74  .      file in t
1720: 68 65 20 3c 53 54 52 4f 4e 47 3e 62 69 6e 5c 43  he <STRONG>bin\C
1730: 6f 6d 70 61 63 74 46 72 61 6d 65 77 6f 72 6b 3c  ompactFramework<
1740: 2f 53 54 52 4f 4e 47 3e 20 66 6f 6c 64 65 72 2e  /STRONG> folder.
1750: 26 6e 62 73 70 3b 20 54 68 65 20 3c 53 54 52 4f  &nbsp; The <STRO
1760: 4e 47 3e 53 79 73 74 65 6d 2e 44 61 74 61 2e 53  NG>System.Data.S
1770: 51 4c 69 74 65 2e 44 4c 4c 3c 2f 53 54 52 4f 4e  QLite.DLL</STRON
1780: 47 3e 0a 20 20 20 20 20 20 61 6e 64 20 3c 53 54  G>.      and <ST
1790: 52 4f 4e 47 3e 53 51 4c 69 74 65 2e 49 6e 74 65  RONG>SQLite.Inte
17a0: 72 6f 70 2e 44 4c 4c 3c 2f 53 54 52 4f 4e 47 3e  rop.DLL</STRONG>
17b0: 20 66 69 6c 65 73 20 66 72 6f 6d 20 74 68 65 20   files from the 
17c0: 3c 53 54 52 4f 4e 47 3e 62 69 6e 5c 43 6f 6d 70  <STRONG>bin\Comp
17d0: 61 63 74 46 72 61 6d 65 77 6f 72 6b 3c 2f 53 54  actFramework</ST
17e0: 52 4f 4e 47 3e 0a 20 20 20 20 20 20 66 6f 6c 64  RONG>.      fold
17f0: 65 72 20 6d 75 73 74 20 62 65 20 64 69 73 74 72  er must be distr
1800: 69 62 75 74 65 64 20 77 69 74 68 20 79 6f 75 72  ibuted with your
1810: 20 61 70 70 6c 69 63 61 74 69 6f 6e 28 73 29 2e   application(s).
1820: 26 6e 62 73 70 3b 20 54 68 65 79 20 63 6f 6e 74  &nbsp; They cont
1830: 61 69 6e 20 74 68 65 20 0a 20 20 20 20 20 20 6d  ain the .      m
1840: 61 6e 61 67 65 64 20 77 72 61 70 70 65 72 20 61  anaged wrapper a
1850: 6e 64 20 74 68 65 20 6e 61 74 69 76 65 20 53 51  nd the native SQ
1860: 4c 69 74 65 33 20 63 6f 64 65 62 61 73 65 20 72  Lite3 codebase r
1870: 65 73 70 65 63 74 69 76 65 6c 79 2e 26 6e 62 73  espectively.&nbs
1880: 70 3b 20 54 68 65 20 43 6f 6d 70 61 63 74 20 0a  p; The Compact .
1890: 20 20 20 20 20 20 46 72 61 6d 65 77 6f 72 6b 20        Framework 
18a0: 64 6f 65 73 20 6e 6f 74 20 63 75 72 72 65 6e 74  does not current
18b0: 6c 79 20 73 75 70 70 6f 72 74 20 6d 61 6e 61 67  ly support manag
18c0: 65 64 20 43 2b 2b 2c 20 74 68 75 73 20 74 68 65  ed C++, thus the
18d0: 20 72 65 61 73 6f 6e 20 66 6f 72 20 74 77 6f 20   reason for two 
18e0: 0a 20 20 20 20 20 20 66 69 6c 65 73 2e 3c 2f 50  .      files.</P
18f0: 3e 0a 20 20 20 20 3c 48 32 3e 3c 42 3e 44 65 76  >.    <H2><B>Dev
1900: 65 6c 6f 70 6d 65 6e 74 20 4e 6f 74 65 73 20 52  elopment Notes R
1910: 65 67 61 72 64 69 6e 67 20 74 68 65 20 53 51 4c  egarding the SQL
1920: 69 74 65 20 33 20 53 6f 75 72 63 65 20 43 6f 64  ite 3 Source Cod
1930: 65 3c 2f 42 3e 3c 2f 48 32 3e 0a 20 20 20 20 3c  e</B></H2>.    <
1940: 70 3e 3c 2f 70 3e 0a 20 20 20 20 3c 70 3e 0a 20  p></p>.    <p>. 
1950: 20 20 20 20 20 53 74 65 70 73 20 66 6f 72 20 6d       Steps for m
1960: 65 72 67 69 6e 67 20 74 68 65 20 73 71 6c 69 74  erging the sqlit
1970: 65 33 20 63 6f 72 65 20 63 6f 64 65 62 61 73 65  e3 core codebase
1980: 20 28 77 69 74 68 6f 75 74 20 43 6f 6d 70 61 63   (without Compac
1990: 74 20 46 72 61 6d 65 77 6f 72 6b 20 73 75 70 70  t Framework supp
19a0: 6f 72 74 20 2d 2d 0a 20 20 20 20 20 20 74 68 61  ort --.      tha
19b0: 74 27 73 20 61 6e 6f 74 68 65 72 20 73 74 6f 72  t's another stor
19c0: 79 29 3a 3c 2f 70 3e 0a 20 20 20 20 3c 6f 6c 3e  y):</p>.    <ol>
19d0: 0a 20 20 20 20 20 20 3c 6c 69 3e 0a 20 20 20 20  .      <li>.    
19e0: 20 20 20 20 44 6f 77 6e 6c 6f 61 64 20 74 68 65      Download the
19f0: 20 6c 61 74 65 73 74 20 73 71 6c 69 74 65 33 20   latest sqlite3 
1a00: 73 6f 75 72 63 65 20 66 72 6f 6d 20 3c 61 20 68  source from <a h
1a10: 72 65 66 3d 22 68 74 74 70 3a 2f 2f 77 77 77 2e  ref="http://www.
1a20: 73 71 6c 69 74 65 2e 6f 72 67 2f 64 6f 77 6e 6c  sqlite.org/downl
1a30: 6f 61 64 2e 68 74 6d 6c 22 3e 0a 20 20 20 20 20  oad.html">.     
1a40: 20 20 20 20 20 68 74 74 70 3a 2f 2f 77 77 77 2e       http://www.
1a50: 73 71 6c 69 74 65 2e 6f 72 67 2f 64 6f 77 6e 6c  sqlite.org/downl
1a60: 6f 61 64 2e 68 74 6d 6c 3c 2f 61 3e 0a 20 20 20  oad.html</a>.   
1a70: 20 20 20 20 20 0a 20 20 20 20 20 20 3c 6c 69 3e       .      <li>
1a80: 0a 20 20 20 20 20 20 20 20 45 78 74 72 61 63 74  .        Extract
1a90: 20 74 68 65 20 73 6f 75 72 63 65 20 63 6f 64 65   the source code
1aa0: 20 74 6f 20 74 68 65 20 3c 62 3e 53 51 4c 69 74   to the <b>SQLit
1ab0: 65 2e 49 6e 74 65 72 6f 70 5c 73 72 63 3c 2f 62  e.Interop\src</b
1ac0: 3e 20 64 69 72 65 63 74 6f 72 79 20 0a 20 20 20  > directory .   
1ad0: 20 20 20 20 20 20 20 6f 66 20 74 68 69 73 20 70         of this p
1ae0: 72 6f 6a 65 63 74 20 0a 20 20 20 20 20 20 3c 6c  roject .      <l
1af0: 69 3e 0a 20 20 20 20 20 20 20 20 4f 70 65 6e 20  i>.        Open 
1b00: 74 68 65 20 3c 62 3e 73 72 63 5c 73 65 6c 65 63  the <b>src\selec
1b10: 74 2e 63 3c 2f 62 3e 20 66 69 6c 65 2e 20 0a 20  t.c</b> file. . 
1b20: 20 20 20 20 20 3c 6c 69 3e 0a 20 20 20 20 20 20       <li>.      
1b30: 20 20 41 64 64 20 3c 62 3e 23 69 6e 63 6c 75 64    Add <b>#includ
1b40: 65 20 22 2e 2e 2f 69 6e 74 65 72 6f 70 2e 68 22  e "../interop.h"
1b50: 20 3c 2f 62 3e 74 6f 20 74 68 65 20 74 6f 70 20   </b>to the top 
1b60: 6f 66 20 74 68 65 20 66 69 6c 65 20 0a 20 20 20  of the file .   
1b70: 20 20 20 20 20 20 20 77 68 65 72 65 20 74 68 65         where the
1b80: 20 6f 74 68 65 72 20 69 6e 63 6c 75 64 65 27 73   other include's
1b90: 20 61 72 65 2e 20 0a 20 20 20 20 20 20 3c 6c 69   are. .      <li
1ba0: 3e 0a 20 20 20 20 20 20 20 20 53 63 72 6f 6c 6c  >.        Scroll
1bb0: 20 64 6f 77 6e 20 74 68 65 20 3c 62 3e 73 65 6c   down the <b>sel
1bc0: 65 63 74 2e 63 3c 2f 62 3e 20 66 69 6c 65 20 74  ect.c</b> file t
1bd0: 6f 20 61 72 6f 75 6e 64 20 6c 69 6e 65 20 3c 62  o around line <b
1be0: 3e 38 32 32 3c 2f 62 3e 2e 26 6e 62 73 70 3b 20  >822</b>.&nbsp; 
1bf0: 0a 20 20 20 20 20 20 20 20 20 20 43 68 61 6e 67  .          Chang
1c00: 65 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68  e the name of th
1c10: 65 20 66 75 6e 63 74 69 6f 6e 20 3c 62 3e 73 74  e function <b>st
1c20: 61 74 69 63 20 76 6f 69 64 20 67 65 6e 65 72 61  atic void genera
1c30: 74 65 43 6f 6c 75 6d 6e 4e 61 6d 65 73 20 3c 2f  teColumnNames </
1c40: 62 3e 74 6f 20 3c 62 3e 73 74 61 74 69 63 20 0a  b>to <b>static .
1c50: 20 20 20 20 20 20 20 20 20 20 20 20 76 6f 69 64              void
1c60: 20 5f 67 65 6e 65 72 61 74 65 43 6f 6c 75 6d 6e   _generateColumn
1c70: 4e 61 6d 65 73 3c 2f 62 3e 20 28 3c 69 3e 6e 6f  Names</b> (<i>no
1c80: 74 65 20 74 68 65 20 75 6e 64 65 72 73 63 6f 72  te the underscor
1c90: 65 20 69 6e 20 66 72 6f 6e 74 20 6f 66 20 74 68  e in front of th
1ca0: 65 20 6e 61 6d 65 3c 2f 69 3e 29 2e 0a 20 20 20  e name</i>)..   
1cb0: 20 20 20 20 20 0a 20 20 20 20 20 20 3c 6c 69 3e       .      <li>
1cc0: 0a 20 20 20 20 20 20 20 20 43 6f 6d 70 69 6c 65  .        Compile
1cd0: 20 69 74 2e 20 0a 20 20 20 20 20 20 3c 2f 6c 69   it. .      </li
1ce0: 3e 0a 20 20 20 20 3c 2f 6f 6c 3e 0a 20 20 20 20  >.    </ol>.    
1cf0: 3c 62 3e 3c 2f 62 3e 0a 20 20 20 20 3c 68 32 3e  <b></b>.    <h2>
1d00: 0a 20 20 20 20 20 20 3c 62 3e 56 65 72 73 69 6f  .      <b>Versio
1d10: 6e 20 48 69 73 74 6f 72 79 3c 2f 62 3e 3c 2f 68  n History</b></h
1d20: 32 3e 0a 20 20 20 20 3c 70 3e 3c 62 3e 31 2e 30  2>.    <p><b>1.0
1d30: 2e 32 34 2e 31 20 2d 20 44 65 63 65 6d 62 65 72  .24.1 - December
1d40: 20 31 39 2c 20 32 30 30 35 3c 2f 62 3e 3c 2f 70   19, 2005</b></p
1d50: 3e 0a 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 3c  >.    <ul>.    <
1d60: 6c 69 3e 55 70 64 61 74 65 20 63 6f 72 65 20 53  li>Update core S
1d70: 51 4c 69 74 65 20 65 6e 67 69 6e 65 20 74 6f 20  QLite engine to 
1d80: 33 2e 32 2e 38 26 6e 62 73 70 3b 3c 2f 6c 69 3e  3.2.8&nbsp;</li>
1d90: 3c 2f 75 6c 3e 0a 20 20 20 20 3c 70 3e 3c 62 3e  </ul>.    <p><b>
1da0: 31 2e 30 2e 32 34 20 2d 20 44 65 63 65 6d 62 65  1.0.24 - Decembe
1db0: 72 20 39 2c 20 32 30 30 35 3c 2f 62 3e 3c 2f 70  r 9, 2005</b></p
1dc0: 3e 0a 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 3c  >.    <ul>.    <
1dd0: 6c 69 3e 46 69 78 65 64 20 74 68 65 3c 65 6d 3e  li>Fixed the<em>
1de0: 20 43 61 74 61 6c 6f 67 73 3c 2f 65 6d 3e 20 73   Catalogs</em> s
1df0: 63 68 65 6d 61 20 62 75 67 20 74 68 61 74 20 63  chema bug that c
1e00: 61 75 73 65 64 20 61 74 74 61 63 68 65 64 20 64  aused attached d
1e10: 61 74 61 62 61 73 65 73 20 6e 6f 74 20 74 6f 20  atabases not to 
1e20: 62 65 20 72 65 2d 61 74 74 61 63 68 65 64 20 74  be re-attached t
1e30: 6f 20 61 20 63 6c 6f 6e 65 64 20 63 6f 6e 6e 65  o a cloned conne
1e40: 63 74 69 6f 6e 0a 20 20 20 20 3c 2f 6c 69 3e 0a  ction.    </li>.
1e50: 20 20 20 20 20 20 3c 6c 69 3e 45 6e 68 61 6e 63        <li>Enhanc
1e60: 65 64 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 20  ed transactions 
1e70: 74 6f 20 61 6c 6c 6f 77 20 66 6f 72 20 61 20 64  to allow for a d
1e80: 65 66 65 72 72 65 64 20 6f 72 20 69 6d 6d 65 64  eferred or immed
1e90: 69 61 74 65 20 77 72 69 74 65 6c 6f 63 6b 2e 20  iate writelock. 
1ea0: 26 6e 62 73 70 3b 53 51 4c 69 74 65 43 6f 6e 6e  &nbsp;SQLiteConn
1eb0: 65 63 74 69 6f 6e 2e 42 65 67 69 6e 54 72 61 6e  ection.BeginTran
1ec0: 73 61 63 74 69 6f 6e 28 29 0a 20 20 20 20 20 20  saction().      
1ed0: 20 20 6e 6f 77 20 68 61 73 20 61 6e 20 61 64 64    now has an add
1ee0: 69 74 69 6f 6e 61 6c 20 6f 76 65 72 6c 6f 61 64  itional overload
1ef0: 20 74 6f 20 73 75 70 70 6f 72 74 20 69 74 26 6e   to support it&n
1f00: 62 73 70 3b 3c 2f 6c 69 3e 3c 6c 69 3e 43 6f 6d  bsp;</li><li>Com
1f10: 6d 61 6e 64 73 20 61 72 65 20 6e 6f 77 20 70 72  mands are now pr
1f20: 65 70 61 72 65 64 20 61 73 20 74 68 65 79 20 61  epared as they a
1f30: 72 65 20 65 78 65 63 75 74 65 64 20 69 6e 73 74  re executed inst
1f40: 65 61 64 20 6f 66 20 62 65 66 6f 72 65 68 61 6e  ead of beforehan
1f50: 64 2e 26 6e 62 73 70 3b 20 54 68 69 73 0a 20 20  d.&nbsp; This.  
1f60: 20 20 20 20 66 69 78 65 73 20 61 20 62 75 67 20      fixes a bug 
1f70: 77 68 65 72 65 62 79 20 61 20 6d 75 6c 74 69 2d  whereby a multi-
1f80: 73 74 61 74 65 6d 65 6e 74 20 63 6f 6d 6d 61 6e  statement comman
1f90: 64 20 74 68 61 74 20 61 6c 74 65 72 73 20 74 68  d that alters th
1fa0: 65 20 64 61 74 61 62 61 73 65 20 61 6e 64 20 73  e database and s
1fb0: 75 62 73 65 71 75 65 6e 74 6c 79 0a 20 20 20 20  ubsequently.    
1fc0: 20 20 72 65 66 65 72 65 6e 63 65 73 20 74 68 65    references the
1fd0: 20 61 6c 74 65 72 65 64 20 64 61 74 61 20 77 6f   altered data wo
1fe0: 75 6c 64 20 66 61 69 6c 20 64 75 72 69 6e 67 20  uld fail during 
1ff0: 50 72 65 70 61 72 65 28 29 2e 3c 2f 6c 69 3e 3c  Prepare().</li><
2000: 6c 69 3e 54 69 67 68 74 65 6e 65 64 20 75 70 20  li>Tightened up 
2010: 74 68 65 20 53 51 4c 69 74 65 44 61 74 61 52 65  the SQLiteDataRe
2020: 61 64 65 72 20 74 6f 20 70 72 65 76 65 6e 74 20  ader to prevent 
2030: 72 65 61 64 69 6e 67 20 63 6f 6c 75 6d 6e 73 20  reading columns 
2040: 62 65 66 6f 72 65 20 63 61 6c 6c 69 6e 67 0a 20  before calling. 
2050: 20 20 20 74 68 65 20 66 69 72 73 74 20 52 65 61     the first Rea
2060: 64 28 29 20 61 6e 64 20 74 6f 20 70 72 65 76 65  d() and to preve
2070: 6e 74 20 72 65 61 64 69 6e 67 20 63 6f 6c 75 6d  nt reading colum
2080: 6e 73 20 61 66 74 65 72 20 74 68 65 20 6c 61 73  ns after the las
2090: 74 20 52 65 61 64 28 29 2e 3c 2f 6c 69 3e 0a 20  t Read().</li>. 
20a0: 20 20 20 20 20 3c 6c 69 3e 41 20 6d 6f 72 65 20       <li>A more 
20b0: 64 65 73 63 72 69 70 74 69 76 65 20 65 72 72 6f  descriptive erro
20c0: 72 20 69 73 20 74 68 72 6f 77 6e 20 69 66 20 74  r is thrown if t
20d0: 68 65 72 65 20 61 72 65 6e 27 74 20 65 6e 6f 75  here aren't enou
20e0: 67 68 20 70 61 72 61 6d 65 74 65 72 73 20 69 6e  gh parameters in
20f0: 20 74 68 65 20 63 6f 6d 6d 61 6e 64 0a 20 20 20   the command.   
2100: 20 20 20 20 20 74 6f 20 73 61 74 69 73 66 79 20       to satisfy 
2110: 74 68 65 20 70 61 72 61 6d 65 74 65 72 73 20 72  the parameters r
2120: 65 71 75 69 72 65 64 20 62 79 20 74 68 65 20 73  equired by the s
2130: 74 61 74 65 6d 65 6e 74 28 73 29 2e 26 6e 62 73  tatement(s).&nbs
2140: 70 3b 3c 2f 6c 69 3e 0a 20 20 20 20 3c 2f 75 6c  p;</li>.    </ul
2150: 3e 0a 20 20 20 20 3c 70 3e 3c 62 3e 31 2e 30 2e  >.    <p><b>1.0.
2160: 32 33 20 2d 20 4e 6f 76 65 6d 62 65 72 20 32 31  23 - November 21
2170: 2c 20 32 30 30 35 3c 2f 62 3e 3c 2f 70 3e 0a 20  , 2005</b></p>. 
2180: 20 20 20 3c 75 6c 3e 0a 20 20 20 20 3c 6c 69 3e     <ul>.    <li>
2190: 4e 61 6d 65 64 20 70 61 72 61 6d 65 74 65 72 73  Named parameters
21a0: 20 6d 61 79 20 6e 6f 77 20 62 65 67 69 6e 20 77   may now begin w
21b0: 69 74 68 20 3c 73 74 72 6f 6e 67 3e 40 3c 2f 73  ith <strong>@</s
21c0: 74 72 6f 6e 67 3e 20 74 6f 20 65 61 73 65 20 70  trong> to ease p
21d0: 6f 72 74 61 62 69 6c 69 74 79 20 6f 66 0a 20 20  ortability of.  
21e0: 20 20 20 20 74 68 65 20 70 72 6f 76 69 64 65 72      the provider
21f0: 2e 20 53 51 4c 69 74 65 27 73 20 6e 61 6d 65 64  . SQLite's named
2200: 20 70 61 72 61 6d 65 74 65 72 73 20 61 72 65 20   parameters are 
2210: 6f 72 64 69 6e 61 72 69 6c 79 20 70 72 65 66 69  ordinarily prefi
2220: 78 65 64 20 77 69 74 68 20 61 20 3c 73 74 72 6f  xed with a <stro
2230: 6e 67 3e 3a 20 3c 2f 73 74 72 6f 6e 67 3e 0a 20  ng>: </strong>. 
2240: 20 20 20 20 20 6f 72 3c 73 74 72 6f 6e 67 3e 20       or<strong> 
2250: 24 3c 2f 73 74 72 6f 6e 67 3e 2e 26 6e 62 73 70  $</strong>.&nbsp
2260: 3b 20 54 68 65 20 64 65 73 69 67 6e 65 72 20 77  ; The designer w
2270: 69 6c 6c 20 73 74 69 6c 6c 20 75 73 65 20 74 68  ill still use th
2280: 65 20 3c 73 74 72 6f 6e 67 3e 24 3c 2f 73 74 72  e <strong>$</str
2290: 6f 6e 67 3e 0a 20 20 20 20 20 20 70 72 65 66 69  ong>.      prefi
22a0: 78 20 68 6f 77 65 76 65 72 2c 20 73 69 6e 63 65  x however, since
22b0: 20 69 74 73 20 6d 6f 72 65 20 63 6f 6d 70 61 74   its more compat
22c0: 69 62 6c 65 20 77 69 74 68 20 74 68 65 20 64 65  ible with the de
22d0: 66 61 75 6c 74 20 53 51 4c 69 74 65 20 65 6e 67  fault SQLite eng
22e0: 69 6e 65 2e 3c 2f 6c 69 3e 3c 6c 69 3e 41 64 64  ine.</li><li>Add
22f0: 65 64 20 73 65 76 65 72 61 6c 20 61 6c 74 65 72  ed several alter
2300: 6e 61 74 65 20 49 53 4f 38 36 30 31 20 64 61 74  nate ISO8601 dat
2310: 65 2f 74 69 6d 65 20 66 6f 72 6d 61 74 73 20 74  e/time formats t
2320: 6f 20 53 51 4c 69 74 65 43 6f 6e 76 65 72 74 2e  o SQLiteConvert.
2330: 63 73 20 74 6f 20 69 6e 63 72 65 61 73 65 0a 20  cs to increase. 
2340: 20 20 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79     compatibility
2350: 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 6c 69  .</li>.      <li
2360: 3e 52 65 6c 61 78 65 64 20 63 6f 65 72 73 69 6f  >Relaxed coersio
2370: 6e 20 72 65 73 74 72 69 63 74 69 6f 6e 73 20 74  n restrictions t
2380: 6f 20 77 6f 72 6b 20 62 65 74 74 65 72 20 77 69  o work better wi
2390: 74 68 20 53 51 4c 69 74 65 27 73 20 69 6e 68 65  th SQLite's inhe
23a0: 72 65 6e 74 20 74 79 70 65 6c 65 73 73 6e 65 73  rent typelessnes
23b0: 73 2e 26 6e 62 73 70 3b 3c 2f 6c 69 3e 0a 20 20  s.&nbsp;</li>.  
23c0: 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 3c 70 3e 3c    </ul>.    <p><
23d0: 62 3e 31 2e 30 2e 32 32 20 2d 20 4e 6f 76 65 6d  b>1.0.22 - Novem
23e0: 62 65 72 20 31 31 2c 20 32 30 30 35 3c 2f 62 3e  ber 11, 2005</b>
23f0: 3c 2f 70 3e 0a 20 20 20 20 3c 75 6c 3e 0a 20 20  </p>.    <ul>.  
2400: 20 20 3c 6c 69 3e 46 69 78 65 64 20 73 6f 6d 65    <li>Fixed some
2410: 20 67 6c 6f 62 61 6c 69 7a 61 74 69 6f 6e 20 69   globalization i
2420: 73 73 75 65 73 20 77 68 69 63 68 20 72 65 73 75  ssues which resu
2430: 6c 74 65 64 20 69 6e 20 69 6e 63 6f 72 72 65 63  lted in incorrec
2440: 74 20 63 61 73 65 2d 69 6e 73 65 6e 73 69 74 69  t case-insensiti
2450: 76 65 20 63 6f 6d 70 61 72 69 73 6f 6e 73 3c 2f  ve comparisons</
2460: 6c 69 3e 0a 20 20 20 20 20 20 3c 6c 69 3e 46 69  li>.      <li>Fi
2470: 78 65 64 20 61 20 62 75 67 20 69 6e 20 74 68 65  xed a bug in the
2480: 20 72 6f 75 74 69 6e 65 20 74 68 61 74 20 66 69   routine that fi
2490: 6e 64 73 20 61 6c 6c 20 75 73 65 72 2d 64 65 66  nds all user-def
24a0: 69 6e 65 64 20 66 75 6e 63 74 69 6f 6e 73 20 69  ined functions i
24b0: 6e 20 61 20 6c 6f 61 64 65 64 20 61 73 73 65 6d  n a loaded assem
24c0: 62 6c 79 2e 26 6e 62 73 70 3b 0a 20 20 20 20 20  bly.&nbsp;.     
24d0: 20 20 20 49 74 20 77 6f 75 6c 64 20 74 68 72 6f     It would thro
24e0: 77 20 61 6e 20 65 78 63 65 70 74 69 6f 6e 20 69  w an exception i
24f0: 66 20 61 6e 79 20 6f 66 20 74 68 65 20 74 79 70  f any of the typ
2500: 65 73 20 69 6e 20 74 68 65 20 61 73 73 65 6d 62  es in the assemb
2510: 6c 79 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20  ly could not be 
2520: 6c 6f 61 64 65 64 2e 26 6e 62 73 70 3b 0a 20 20  loaded.&nbsp;.  
2530: 20 20 20 20 20 20 54 68 65 20 65 78 63 65 70 74        The except
2540: 69 6f 6e 20 69 73 20 6e 6f 77 20 63 61 75 67 68  ion is now caugh
2550: 74 20 61 6e 64 20 68 61 6e 64 6c 65 64 20 61 70  t and handled ap
2560: 70 72 6f 70 72 69 61 74 65 6c 79 2e 3c 2f 6c 69  propriately.</li
2570: 3e 0a 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20  >.    </ul>.    
2580: 3c 70 3e 3c 62 3e 31 2e 30 2e 32 31 20 2d 20 4e  <p><b>1.0.21 - N
2590: 6f 76 65 6d 62 65 72 20 34 2c 20 32 30 30 35 3c  ovember 4, 2005<
25a0: 2f 62 3e 3c 2f 70 3e 0a 20 20 20 20 3c 55 4c 3e  /b></p>.    <UL>
25b0: 0a 20 20 20 20 20 20 3c 6c 69 3e 46 69 78 65 64  .      <li>Fixed
25c0: 20 61 20 64 65 73 69 67 6e 65 72 20 62 75 67 20   a designer bug 
25d0: 77 68 65 6e 20 63 72 65 61 74 69 6e 67 20 74 79  when creating ty
25e0: 70 65 64 20 64 61 74 61 73 65 74 73 20 77 69 74  ped datasets wit
25f0: 68 20 70 61 72 61 6d 65 74 65 72 69 7a 65 64 20  h parameterized 
2600: 71 75 65 72 69 65 73 2e 3c 2f 6c 69 3e 0a 20 20  queries.</li>.  
2610: 20 20 20 20 3c 6c 69 3e 54 68 65 20 61 62 6f 76      <li>The abov
2620: 65 20 66 69 78 20 74 68 65 6e 20 65 78 70 6f 73  e fix then expos
2630: 65 64 20 61 6e 6f 74 68 65 72 20 62 75 67 20 69  ed another bug i
2640: 6e 20 74 68 65 20 64 61 74 61 72 65 61 64 65 72  n the datareader
2650: 27 73 20 61 62 69 6c 69 74 79 20 74 6f 20 71 75  's ability to qu
2660: 65 72 79 20 73 63 68 65 6d 61 0a 20 20 20 20 20  ery schema.     
2670: 20 20 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 6f     information o
2680: 6e 20 70 61 72 61 6d 65 74 65 72 69 7a 65 64 20  n parameterized 
2690: 63 6f 6d 6d 61 6e 64 73 2c 20 77 68 69 63 68 20  commands, which 
26a0: 77 61 73 20 61 6c 73 6f 20 66 69 78 65 64 2e 3c  was also fixed.<
26b0: 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 6c 69 3e 43  /li>.      <li>C
26c0: 6f 6d 70 69 6c 65 64 20 61 67 61 69 6e 73 74 20  ompiled against 
26d0: 74 68 65 20 52 54 4d 20 76 65 72 73 69 6f 6e 20  the RTM version 
26e0: 6f 66 20 56 53 32 30 30 35 2e 3c 2f 6c 69 3e 0a  of VS2005.</li>.
26f0: 20 20 20 20 20 20 3c 6c 69 3e 52 65 77 72 6f 74        <li>Rewrot
2700: 65 20 74 68 65 20 64 65 73 69 67 6e 2d 74 69 6d  e the design-tim
2710: 65 20 69 6e 73 74 61 6c 6c 20 73 63 72 69 70 74  e install script
2720: 20 74 6f 20 75 73 65 20 74 68 65 20 58 4d 4c 20   to use the XML 
2730: 44 4f 4d 20 6f 62 6a 65 63 74 73 20 77 68 65 6e  DOM objects when
2740: 20 77 72 69 74 69 6e 67 0a 20 20 20 20 20 20 20   writing.       
2750: 20 74 6f 20 74 68 65 20 6d 61 63 68 69 6e 65 2e   to the machine.
2760: 63 6f 6e 66 69 67 20 61 6e 64 20 74 6f 20 61 75  config and to au
2770: 74 6f 6d 61 74 69 63 61 6c 6c 79 20 72 65 67 69  tomatically regi
2780: 73 74 65 72 20 74 68 65 20 44 4c 4c 20 69 6e 20  ster the DLL in 
2790: 74 68 65 20 47 41 43 2e 3c 2f 6c 69 3e 3c 6c 69  the GAC.</li><li
27a0: 3e 4d 61 64 65 20 63 68 61 6e 67 65 73 20 74 6f  >Made changes to
27b0: 20 74 68 65 20 61 70 70 2e 63 6f 6e 66 69 67 20   the app.config 
27c0: 64 65 73 63 72 69 70 74 69 6f 6e 73 20 61 6e 64  descriptions and
27d0: 20 68 65 6c 70 20 66 69 6c 65 20 74 6f 20 69 6d   help file to im
27e0: 70 72 6f 76 65 20 76 65 72 73 69 6f 6e 2d 69 6e  prove version-in
27f0: 64 65 70 65 6e 64 65 6e 74 0a 20 20 20 20 20 20  dependent.      
2800: 20 20 66 61 63 74 6f 72 79 20 73 75 70 70 6f 72    factory suppor
2810: 74 2e 3c 2f 6c 69 3e 3c 2f 55 4c 3e 0a 20 20 20  t.</li></UL>.   
2820: 20 3c 70 3e 3c 62 3e 31 2e 30 2e 32 30 20 2d 20   <p><b>1.0.20 - 
2830: 4f 63 74 6f 62 65 72 20 31 39 2c 20 32 30 30 35  October 19, 2005
2840: 3c 2f 62 3e 3c 2f 70 3e 0a 20 20 20 20 3c 55 4c  </b></p>.    <UL
2850: 3e 0a 20 20 20 20 20 20 3c 6c 69 3e 0a 20 20 20  >.      <li>.   
2860: 20 20 20 20 20 46 69 78 65 64 20 61 20 73 68 6f       Fixed a sho
2870: 72 74 63 75 74 20 69 6e 20 53 51 4c 69 74 65 42  rtcut in SQLiteB
2880: 61 73 65 2e 47 65 74 56 61 6c 75 65 20 77 68 69  ase.GetValue whi
2890: 63 68 20 77 61 73 20 69 6e 73 75 66 66 69 63 69  ch was insuffici
28a0: 65 6e 74 20 66 6f 72 20 0a 20 20 20 20 20 20 20  ent for .       
28b0: 20 69 6e 74 65 72 6e 61 74 69 6f 6e 61 6c 20 65   international e
28c0: 6e 76 69 72 6f 6e 6d 65 6e 74 73 2e 26 6e 62 73  nvironments.&nbs
28d0: 70 3b 20 54 68 65 20 73 68 6f 72 74 63 75 74 20  p; The shortcut 
28e0: 77 61 73 20 72 65 6d 6f 76 65 64 20 61 6e 64 20  was removed and 
28f0: 74 68 65 20 22 70 72 6f 70 65 72 22 20 0a 20 20  the "proper" .  
2900: 20 20 20 20 20 20 70 72 6f 63 65 64 75 72 65 20        procedure 
2910: 70 75 74 20 69 6e 2e 3c 2f 6c 69 3e 3c 2f 55 4c  put in.</li></UL
2920: 3e 0a 20 20 20 20 3c 70 3e 3c 62 3e 31 2e 30 2e  >.    <p><b>1.0.
2930: 31 39 20 2d 20 4f 63 74 6f 62 65 72 20 35 2c 20  19 - October 5, 
2940: 32 30 30 35 3c 2f 62 3e 3c 2f 70 3e 0a 20 20 20  2005</b></p>.   
2950: 20 3c 55 4c 3e 0a 20 20 20 20 20 20 3c 6c 69 3e   <UL>.      <li>
2960: 0a 20 20 20 20 20 20 43 6f 64 65 20 6d 65 72 67  .      Code merg
2970: 65 20 77 69 74 68 20 53 51 4c 69 74 65 20 33 2e  e with SQLite 3.
2980: 32 2e 37 0a 20 20 20 20 20 20 3c 4c 49 3e 0a 20  2.7.      <LI>. 
2990: 20 20 20 20 20 46 69 78 65 64 20 62 75 67 73 20       Fixed bugs 
29a0: 69 6e 20 74 68 65 20 43 45 20 70 6f 72 74 20 63  in the CE port c
29b0: 6f 64 65 20 28 6f 73 5f 77 69 6e 63 65 2e 63 29  ode (os_wince.c)
29c0: 26 6e 62 73 70 3b 77 68 69 63 68 20 77 65 72 65  &nbsp;which were
29d0: 20 62 72 6f 75 67 68 74 20 74 6f 20 0a 20 20 20   brought to .   
29e0: 20 20 20 6c 69 67 68 74 26 6e 62 73 70 3b 62 79     light&nbsp;by
29f0: 26 6e 62 73 70 3b 72 65 63 65 6e 74 20 63 68 61  &nbsp;recent cha
2a00: 6e 67 65 73 20 69 6e 20 74 68 65 20 53 51 4c 69  nges in the SQLi
2a10: 74 65 20 65 6e 67 69 6e 65 2e 0a 20 20 20 20 20  te engine..     
2a20: 20 3c 4c 49 3e 0a 20 20 20 20 20 20 20 20 52 65   <LI>.        Re
2a30: 63 6f 6d 70 69 6c 65 64 20 61 6e 64 20 6d 6f 64  compiled and mod
2a40: 69 66 69 65 64 20 74 6f 20 62 65 20 63 6f 6d 70  ified to be comp
2a50: 61 74 69 62 6c 65 20 77 69 74 68 20 74 68 65 20  atible with the 
2a60: 53 65 70 74 65 6d 62 65 72 20 56 53 32 30 30 35  September VS2005
2a70: 20 52 65 6c 65 61 73 65 20 0a 20 20 20 20 20 20   Release .      
2a80: 20 20 43 61 6e 64 69 64 61 74 65 2e 3c 62 72 3e    Candidate.<br>
2a90: 0a 20 20 20 20 20 20 20 20 42 65 74 61 20 32 20  .        Beta 2 
2aa0: 75 73 65 72 73 20 73 68 6f 75 6c 64 20 63 6f 6e  users should con
2ab0: 74 69 6e 75 65 20 74 6f 20 75 73 65 20 31 2e 30  tinue to use 1.0
2ac0: 2e 31 38 2e 31 3c 2f 4c 49 3e 3c 2f 55 4c 3e 0a  .18.1</LI></UL>.
2ad0: 20 20 20 20 3c 70 3e 3c 62 3e 31 2e 30 2e 31 38      <p><b>1.0.18
2ae0: 2e 31 20 2d 20 53 65 70 74 65 6d 62 65 72 20 31  .1 - September 1
2af0: 39 2c 20 32 30 30 35 3c 2f 62 3e 3c 2f 70 3e 0a  9, 2005</b></p>.
2b00: 20 20 20 20 3c 55 4c 3e 0a 20 20 20 20 20 20 3c      <UL>.      <
2b10: 6c 69 3e 0a 20 20 20 20 20 20 20 20 43 6f 64 65  li>.        Code
2b20: 20 6d 65 72 67 65 20 77 69 74 68 20 53 51 4c 69   merge with SQLi
2b30: 74 65 20 33 2e 32 2e 36 3c 2f 6c 69 3e 3c 2f 55  te 3.2.6</li></U
2b40: 4c 3e 0a 20 20 20 20 3c 70 3e 3c 62 3e 31 2e 30  L>.    <p><b>1.0
2b50: 2e 31 38 20 2d 20 53 65 70 74 65 6d 62 65 72 20  .18 - September 
2b60: 31 2c 20 32 30 30 35 3c 2f 62 3e 3c 2f 70 3e 0a  1, 2005</b></p>.
2b70: 20 20 20 20 3c 55 4c 3e 0a 20 20 20 20 20 20 3c      <UL>.      <
2b80: 6c 69 3e 0a 20 20 20 20 20 20 20 20 41 64 64 65  li>.        Adde
2b90: 64 20 74 79 70 65 2d 73 70 65 63 69 66 69 63 20  d type-specific 
2ba0: 6d 65 74 68 6f 64 20 63 61 6c 6c 73 20 77 68 65  method calls whe
2bb0: 6e 20 75 73 69 6e 67 20 74 68 65 20 76 61 72 69  n using the vari
2bc0: 6f 75 73 20 53 51 4c 69 74 65 20 63 6c 61 73 73  ous SQLite class
2bd0: 65 73 20 74 68 61 74 20 0a 20 20 20 20 20 20 20  es that .       
2be0: 20 77 6f 75 6c 64 27 76 65 20 6e 6f 72 6d 61 6c   would've normal
2bf0: 6c 79 20 72 65 74 75 72 6e 65 64 20 61 20 61 20  ly returned a a 
2c00: 67 65 6e 65 72 69 63 20 44 62 20 62 61 73 65 20  generic Db base 
2c10: 63 6c 61 73 73 2c 20 77 68 69 63 68 20 61 6c 69  class, which ali
2c20: 67 6e 73 20 74 68 65 20 63 6f 64 65 20 0a 20 20  gns the code .  
2c30: 20 20 20 20 20 20 62 65 74 74 65 72 20 77 69 74        better wit
2c40: 68 20 74 68 65 20 4d 69 63 72 6f 73 6f 66 74 2d  h the Microsoft-
2c50: 73 75 70 70 6c 69 65 64 20 64 61 74 61 20 70 72  supplied data pr
2c60: 6f 76 69 64 65 72 73 2e 3c 2f 6c 69 3e 3c 2f 55  oviders.</li></U
2c70: 4c 3e 0a 20 20 20 20 3c 70 3e 3c 62 3e 31 2e 30  L>.    <p><b>1.0
2c80: 2e 31 37 20 2d 20 41 75 67 75 73 74 20 32 36 2c  .17 - August 26,
2c90: 20 32 30 30 35 3c 2f 62 3e 3c 2f 70 3e 0a 20 20   2005</b></p>.  
2ca0: 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 3c 6c 69    <ul>.      <li
2cb0: 3e 0a 20 20 20 20 20 20 43 6f 64 65 20 6d 65 72  >.      Code mer
2cc0: 67 65 20 77 69 74 68 20 53 51 4c 69 74 65 20 33  ge with SQLite 3
2cd0: 2e 32 2e 35 0a 20 20 20 20 20 20 3c 6c 69 3e 0a  .2.5.      <li>.
2ce0: 20 20 20 20 20 20 41 64 64 65 64 20 49 74 61 6e        Added Itan
2cf0: 69 75 6d 20 61 6e 64 20 78 36 34 20 62 75 69 6c  ium and x64 buil
2d00: 64 20 73 65 74 74 69 6e 67 73 20 74 6f 20 74 68  d settings to th
2d10: 65 20 70 72 6f 6a 65 63 74 20 28 6e 65 65 64 73  e project (needs
2d20: 20 74 65 73 74 69 6e 67 29 0a 20 20 20 20 20 20   testing).      
2d30: 3c 6c 69 3e 0a 20 20 20 20 20 20 42 75 67 66 69  <li>.      Bugfi
2d40: 78 65 73 20 61 6e 64 20 65 6e 68 61 6e 63 65 6d  xes and enhancem
2d50: 65 6e 74 73 20 74 6f 20 73 65 76 65 72 61 6c 20  ents to several 
2d60: 73 63 68 65 6d 61 20 74 79 70 65 73 0a 20 20 20  schema types.   
2d70: 20 20 20 3c 6c 69 3e 0a 20 20 20 20 20 20 41 64     <li>.      Ad
2d80: 64 69 74 69 6f 6e 61 6c 20 64 65 73 69 67 6e 2d  ditional design-
2d90: 74 69 6d 65 20 73 75 70 70 6f 72 74 20 74 6f 20  time support to 
2da0: 69 6e 63 6c 75 64 65 20 69 6e 64 65 78 20 61 6e  include index an
2db0: 64 20 66 6f 72 65 69 67 6e 20 6b 65 79 20 0a 20  d foreign key . 
2dc0: 20 20 20 20 20 65 6e 75 6d 65 72 61 74 69 6f 6e       enumeration
2dd0: 73 2e 26 6e 62 73 70 3b 20 52 65 71 75 69 72 65  s.&nbsp; Require
2de0: 73 20 72 65 2d 72 65 67 69 73 74 65 72 69 6e 67  s re-registering
2df0: 20 74 68 65 20 64 65 73 69 67 6e 65 72 20 75 73   the designer us
2e00: 69 6e 67 20 0a 20 20 20 20 20 20 49 4e 53 54 41  ing .      INSTA
2e10: 4c 4c 2e 43 4d 44 2e 26 6e 62 73 70 3b 20 54 68  LL.CMD.&nbsp; Th
2e20: 65 20 6e 65 77 20 64 65 73 69 67 6e 65 72 20 63  e new designer c
2e30: 6f 64 65 20 6e 6f 77 20 61 6c 6c 6f 77 73 20 74  ode now allows t
2e40: 68 65 20 56 53 20 71 75 65 72 79 20 64 65 73 69  he VS query desi
2e50: 67 6e 65 72 20 61 6e 64 20 0a 20 20 20 20 20 20  gner and .      
2e60: 74 79 70 65 64 20 64 61 74 61 73 65 74 73 20 74  typed datasets t
2e70: 6f 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20  o automatically 
2e80: 6c 69 6e 6b 20 75 70 20 66 6f 72 65 69 67 6e 20  link up foreign 
2e90: 6b 65 79 73 2c 20 75 73 65 20 69 6e 64 65 78 65  keys, use indexe
2ea0: 73 2c 20 61 6e 64 20 0a 20 20 20 20 20 20 61 75  s, and .      au
2eb0: 74 6f 6d 61 74 69 63 61 6c 6c 79 20 67 65 6e 65  tomatically gene
2ec0: 72 61 74 65 20 72 65 6c 61 74 69 6f 6e 73 68 69  rate relationshi
2ed0: 70 73 20 66 72 6f 6d 20 74 68 65 20 73 63 68 65  ps from the sche
2ee0: 6d 61 2e 3c 6c 69 3e 0a 20 20 20 20 20 20 20 20  ma.<li>.        
2ef0: 41 64 64 69 74 69 6f 6e 61 6c 20 73 74 61 74 69  Additional stati
2f00: 63 20 6d 65 74 68 6f 64 73 20 6f 6e 20 53 51 4c  c methods on SQL
2f10: 69 74 65 43 6f 6e 6e 65 63 74 69 6f 6e 20 74 6f  iteConnection to
2f20: 20 63 72 65 61 74 65 20 61 20 64 61 74 61 62 61   create a databa
2f30: 73 65 20 66 69 6c 65 2c 20 0a 20 20 20 20 20 20  se file, .      
2f40: 20 20 65 6e 63 72 79 70 74 20 61 20 66 69 6c 65    encrypt a file
2f50: 20 75 73 69 6e 67 20 74 68 65 20 45 6e 63 72 79   using the Encry
2f60: 70 74 65 64 20 46 69 6c 65 20 53 79 73 74 65 6d  pted File System
2f70: 20 28 45 46 53 29 20 6f 6e 20 4e 54 46 53 20 28   (EFS) on NTFS (
2f80: 72 65 71 75 69 72 65 73 20 4e 54 20 32 4b 20 6f  requires NT 2K o
2f90: 72 20 0a 20 20 20 20 20 20 20 20 61 62 6f 76 65  r .        above
2fa0: 29 20 61 6e 64 20 4e 54 46 53 20 66 69 6c 65 20  ) and NTFS file 
2fb0: 63 6f 6d 70 72 65 73 73 69 6f 6e 3c 2f 6c 69 3e  compression</li>
2fc0: 0a 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 3c  .    </ul>.    <
2fd0: 70 3e 3c 62 3e 31 2e 30 2e 31 36 20 2d 20 41 75  p><b>1.0.16 - Au
2fe0: 67 75 73 74 20 32 34 2c 20 32 30 30 35 3c 2f 62  gust 24, 2005</b
2ff0: 3e 3c 2f 70 3e 0a 20 20 20 20 3c 75 6c 3e 0a 20  ></p>.    <ul>. 
3000: 20 20 20 20 20 3c 6c 69 3e 0a 20 20 20 20 20 20       <li>.      
3010: 43 6f 64 65 20 6d 65 72 67 65 20 77 69 74 68 20  Code merge with 
3020: 53 51 4c 69 74 65 20 33 2e 32 2e 34 20 77 69 74  SQLite 3.2.4 wit
3030: 68 20 74 68 65 20 6c 61 72 67 65 20 64 65 6c 65  h the large dele
3040: 74 65 20 62 75 67 66 69 78 20 69 6e 20 43 56 53  te bugfix in CVS
3050: 20 28 77 68 69 63 68 20 77 69 6c 6c 20 0a 20 20   (which will .  
3060: 20 20 20 20 62 65 63 6f 6d 65 20 33 2e 32 2e 35      become 3.2.5
3070: 20 73 6f 6f 6e 29 0a 20 20 20 20 20 20 3c 6c 69   soon).      <li
3080: 3e 0a 20 20 20 20 20 20 20 20 41 64 64 65 64 20  >.        Added 
3090: 6e 65 77 20 47 65 74 53 63 68 65 6d 61 28 29 20  new GetSchema() 
30a0: 74 79 70 65 73 3a 20 49 6e 64 65 78 43 6f 6c 75  types: IndexColu
30b0: 6d 6e 73 2c 20 56 69 65 77 43 6f 6c 75 6d 6e 73  mns, ViewColumns
30c0: 2c 20 46 6f 72 65 69 67 6e 4b 65 79 73 3c 2f 6c  , ForeignKeys</l
30d0: 69 3e 0a 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20  i>.    </ul>.   
30e0: 20 3c 70 3e 3c 62 3e 31 2e 30 2e 31 35 20 2d 20   <p><b>1.0.15 - 
30f0: 41 75 67 75 73 74 20 32 32 2c 20 32 30 30 35 3c  August 22, 2005<
3100: 2f 62 3e 3c 62 72 3e 0a 20 20 20 20 3c 2f 70 3e  /b><br>.    </p>
3110: 0a 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20  .    <ul>.      
3120: 3c 6c 69 3e 0a 20 20 20 20 20 20 43 6f 64 65 20  <li>.      Code 
3130: 6d 65 72 67 65 20 77 69 74 68 20 53 51 4c 69 74  merge with SQLit
3140: 65 20 33 2e 32 2e 33 0a 20 20 20 20 20 20 3c 4c  e 3.2.3.      <L
3150: 49 3e 0a 20 20 20 20 20 20 20 20 4d 69 6e 6f 72  I>.        Minor
3160: 20 75 70 64 61 74 65 73 20 66 6f 72 20 62 65 74   updates for bet
3170: 74 65 72 20 64 65 73 69 67 6e 2d 74 69 6d 65 20  ter design-time 
3180: 65 78 70 65 72 69 65 6e 63 65 2e 20 4d 6f 72 65  experience. More
3190: 20 64 65 73 69 67 6e 2d 74 69 6d 65 20 63 6f 64   design-time cod
31a0: 65 20 74 6f 20 0a 20 20 20 20 20 20 20 20 66 6f  e to .        fo
31b0: 6c 6c 6f 77 20 69 6e 20 73 75 62 73 65 71 75 65  llow in subseque
31c0: 6e 74 20 72 65 6c 65 61 73 65 73 2e 3c 2f 4c 49  nt releases.</LI
31d0: 3e 0a 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20  >.    </ul>.    
31e0: 3c 70 3e 3c 62 3e 31 2e 30 2e 31 34 20 2d 20 41  <p><b>1.0.14 - A
31f0: 75 67 75 73 74 20 31 36 2c 20 32 30 30 35 3c 2f  ugust 16, 2005</
3200: 62 3e 3c 62 72 3e 0a 20 20 20 20 3c 2f 70 3e 0a  b><br>.    </p>.
3210: 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 3c      <ul>.      <
3220: 6c 69 3e 0a 20 20 20 20 20 20 46 69 78 65 64 20  li>.      Fixed 
3230: 61 20 62 75 67 20 69 6e 20 74 68 65 20 53 51 4c  a bug in the SQL
3240: 69 74 65 44 61 74 61 41 64 61 70 74 65 72 20 64  iteDataAdapter d
3250: 75 65 20 74 6f 20 69 6e 73 75 66 66 69 63 69 65  ue to insufficie
3260: 6e 74 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f  nt implementatio
3270: 6e 20 6f 66 20 74 68 65 20 0a 20 20 20 20 20 20  n of the .      
3280: 63 6c 61 73 73 2e 26 6e 62 73 70 3b 20 54 68 65  class.&nbsp; The
3290: 20 52 6f 77 55 70 64 61 74 69 6e 67 20 61 6e 64   RowUpdating and
32a0: 20 52 6f 77 55 70 64 61 74 65 64 20 65 76 65 6e   RowUpdated even
32b0: 74 73 20 61 72 65 20 6e 6f 77 20 70 72 6f 70 65  ts are now prope
32c0: 72 6c 79 20 0a 20 20 20 20 20 20 69 6d 70 6c 65  rly .      imple
32d0: 6d 65 6e 74 65 64 2c 20 62 75 74 20 75 6e 66 6f  mented, but unfo
32e0: 72 74 75 6e 61 74 65 6c 79 20 69 6e 73 65 72 74  rtunately insert
32f0: 69 6e 67 20 61 6e 64 20 75 70 64 61 74 69 6e 67  ing and updating
3300: 20 64 61 74 61 20 69 6e 20 61 20 44 61 74 61 54   data in a DataT
3310: 61 62 6c 65 20 6f 72 20 0a 20 20 20 20 20 20 44  able or .      D
3320: 61 74 61 53 65 74 20 69 73 20 6e 6f 77 20 6d 75  ataSet is now mu
3330: 63 68 20 73 6c 6f 77 65 72 2e 26 6e 62 73 70 3b  ch slower.&nbsp;
3340: 20 54 68 69 73 20 69 73 20 74 68 65 20 70 72 6f   This is the pro
3350: 70 65 72 20 64 65 73 69 67 6e 20 68 6f 77 65 76  per design howev
3360: 65 72 2c 20 73 6f 20 74 68 65 20 0a 20 20 20 20  er, so the .    
3370: 20 20 63 68 61 6e 67 65 73 20 61 72 65 20 68 65    changes are he
3380: 72 65 20 74 6f 20 73 74 61 79 2e 0a 20 20 20 20  re to stay..    
3390: 20 20 3c 4c 49 3e 0a 20 20 20 20 20 20 4c 6f 74    <LI>.      Lot
33a0: 73 20 6f 66 20 73 63 68 65 6d 61 20 63 68 61 6e  s of schema chan
33b0: 67 65 73 20 74 6f 20 73 75 70 70 6f 72 74 20 56  ges to support V
33c0: 69 73 75 61 6c 20 53 74 75 64 69 6f 27 73 20 44  isual Studio's D
33d0: 61 74 61 20 44 65 73 69 67 6e 65 72 20 61 72 63  ata Designer arc
33e0: 68 69 74 65 63 74 75 72 65 2e 3c 6c 69 3e 41 64  hitecture.<li>Ad
33f0: 64 65 64 20 0a 20 20 20 20 20 20 20 20 44 65 73  ded .        Des
3400: 69 67 6e 65 72 20 73 75 70 70 6f 72 74 20 66 6f  igner support fo
3410: 72 20 74 68 65 20 70 72 6f 76 69 64 65 72 2e 26  r the provider.&
3420: 6e 62 73 70 3b 20 49 74 27 73 20 6e 6f 74 20 31  nbsp; It's not 1
3430: 30 30 25 2c 20 62 75 74 20 79 6f 75 20 63 61 6e  00%, but you can
3440: 20 64 65 73 69 67 6e 20 0a 20 20 20 20 20 20 20   design .       
3450: 20 71 75 65 72 69 65 73 2c 20 61 64 64 20 74 79   queries, add ty
3460: 70 65 64 20 64 61 74 61 73 65 74 73 20 61 6e 64  ped datasets and
3470: 20 70 65 72 66 6f 72 6d 20 71 75 69 74 65 20 61   perform quite a
3480: 20 6e 75 6d 62 65 72 20 6f 66 20 74 61 73 6b 73   number of tasks
3490: 20 61 6c 6c 20 77 69 74 68 69 6e 20 0a 20 20 20   all within .   
34a0: 20 20 20 20 20 56 69 73 75 61 6c 20 53 74 75 64       Visual Stud
34b0: 69 6f 20 6e 6f 77 2e 3c 2f 6c 69 3e 3c 2f 75 6c  io now.</li></ul
34c0: 3e 0a 20 20 20 20 3c 50 3e 3c 42 3e 31 2e 30 2e  >.    <P><B>1.0.
34d0: 31 33 20 2d 20 41 75 67 75 73 74 20 38 2c 20 32  13 - August 8, 2
34e0: 30 30 35 3c 2f 42 3e 3c 42 52 3e 0a 20 20 20 20  005</B><BR>.    
34f0: 3c 2f 50 3e 0a 20 20 20 20 3c 44 49 56 3e 0a 20  </P>.    <DIV>. 
3500: 20 20 20 20 20 3c 55 4c 3e 0a 20 20 20 20 20 20       <UL>.      
3510: 20 20 3c 4c 49 3e 0a 20 20 20 20 20 20 20 20 46    <LI>.        F
3520: 69 78 65 64 20 61 20 6e 61 6d 65 64 20 70 61 72  ixed a named par
3530: 61 6d 65 74 65 72 20 62 75 67 20 69 6e 20 74 68  ameter bug in th
3540: 65 20 62 61 73 65 20 53 51 4c 69 74 65 5f 55 54  e base SQLite_UT
3550: 46 31 36 20 63 6c 61 73 73 2c 20 77 68 69 63 68  F16 class, which
3560: 20 6f 66 20 63 6f 75 72 73 65 20 0a 20 20 20 20   of course .    
3570: 20 20 20 20 6f 6e 6c 79 20 73 68 6f 77 65 64 20      only showed 
3580: 75 70 20 77 68 65 6e 20 61 20 64 61 74 61 62 61  up when a databa
3590: 73 65 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 77 61  se connection wa
35a0: 73 20 6f 70 65 6e 65 64 20 75 73 69 6e 67 20 74  s opened using t
35b0: 68 65 20 0a 20 20 20 20 20 20 20 20 55 73 65 55  he .        UseU
35c0: 54 46 31 36 45 6e 63 6f 64 69 6e 67 3d 54 72 75  TF16Encoding=Tru
35d0: 65 20 70 61 72 61 6d 65 74 65 72 2e 0a 20 20 20  e parameter..   
35e0: 20 20 20 20 20 3c 4c 49 3e 0a 20 20 20 20 20 20       <LI>.      
35f0: 20 20 20 20 46 69 78 65 64 20 61 20 70 65 72 66      Fixed a perf
3600: 6f 72 6d 61 6e 63 65 20 69 73 73 75 65 20 69 6e  ormance issue in
3610: 20 53 51 4c 69 74 65 5f 55 54 46 31 36 20 69 6e   SQLite_UTF16 in
3620: 76 6f 6c 76 69 6e 67 20 73 74 72 69 6e 67 20 6d  volving string m
3630: 61 72 73 68 61 6c 69 6e 67 2e 3c 2f 4c 49 3e 3c  arshaling.</LI><
3640: 2f 55 4c 3e 0a 20 20 20 20 3c 2f 44 49 56 3e 0a  /UL>.    </DIV>.
3650: 20 20 20 20 3c 50 3e 3c 42 3e 31 2e 30 2e 31 32      <P><B>1.0.12
3660: 20 2d 20 41 75 67 75 73 74 20 35 2c 20 32 30 30   - August 5, 200
3670: 35 3c 2f 42 3e 3c 42 52 3e 0a 20 20 20 20 3c 2f  5</B><BR>.    </
3680: 50 3e 0a 20 20 20 20 3c 44 49 56 3e 0a 20 20 20  P>.    <DIV>.   
3690: 20 20 20 3c 55 4c 3e 0a 20 20 20 20 20 20 20 20     <UL>.        
36a0: 3c 4c 49 3e 0a 20 20 20 20 20 20 20 20 20 20 46  <LI>.          F
36b0: 75 6c 6c 20 73 75 70 70 6f 72 74 20 66 6f 72 20  ull support for 
36c0: 74 68 65 20 43 6f 6d 70 61 63 74 20 46 72 61 6d  the Compact Fram
36d0: 65 77 6f 72 6b 2e 26 6e 62 73 70 3b 20 45 61 63  ework.&nbsp; Eac
36e0: 68 20 62 75 69 6c 64 20 28 44 65 62 75 67 2f 52  h build (Debug/R
36f0: 65 6c 65 61 73 65 29 20 6e 6f 77 20 0a 20 20 20  elease) now .   
3700: 20 20 20 20 20 20 20 68 61 73 20 61 26 6e 62 73         has a&nbs
3710: 70 3b 70 6c 61 74 66 6f 72 6d 2c 20 65 69 74 68  p;platform, eith
3720: 65 72 20 57 69 6e 33 32 20 6f 72 20 43 6f 6d 70  er Win32 or Comp
3730: 61 63 74 20 46 72 61 6d 65 77 6f 72 6b 2e 26 6e  act Framework.&n
3740: 62 73 70 3b 20 54 68 65 20 63 6f 72 72 65 63 74  bsp; The correct
3750: 20 0a 20 20 20 20 20 20 20 20 20 20 70 72 6f 6a   .          proj
3760: 65 63 74 73 20 61 72 65 20 62 75 69 6c 74 20 61  ects are built a
3770: 63 63 6f 72 64 69 6e 67 6c 79 2e 26 6e 62 73 70  ccordingly.&nbsp
3780: 3b 20 53 65 65 20 74 68 65 26 6e 62 73 70 3b 3c  ; See the&nbsp;<
3790: 41 20 68 72 65 66 3d 22 23 72 65 64 69 73 74 22  A href="#redist"
37a0: 3e 44 69 73 74 72 69 62 75 74 69 6e 67 20 0a 20  >Distributing . 
37b0: 20 20 20 20 20 20 20 20 20 20 20 53 51 4c 69 74             SQLit
37c0: 65 3c 2f 41 3e 0a 20 20 20 20 20 20 20 20 73 65  e</A>.        se
37d0: 63 74 69 6f 6e 20 66 6f 72 20 69 6e 66 6f 72 6d  ction for inform
37e0: 61 74 69 6f 6e 20 6f 6e 20 77 68 61 74 20 66 69  ation on what fi
37f0: 6c 65 73 20 6e 65 65 64 20 74 6f 20 62 65 20 64  les need to be d
3800: 69 73 74 72 69 62 75 74 65 64 20 66 6f 72 20 65  istributed for e
3810: 61 63 68 20 0a 20 20 20 20 20 20 20 20 70 6c 61  ach .        pla
3820: 74 66 6f 72 6d 2e 26 6e 62 73 70 3b 0a 20 20 20  tform.&nbsp;.   
3830: 20 20 20 20 20 3c 4c 49 3e 0a 20 20 20 20 20 20       <LI>.      
3840: 20 20 4d 6f 64 69 66 69 65 64 20 53 51 4c 69 74    Modified SQLit
3850: 65 33 2e 52 65 73 65 74 28 29 20 61 6e 64 20 53  e3.Reset() and S
3860: 74 65 70 28 29 20 66 75 6e 63 74 69 6f 6e 73 20  tep() functions 
3870: 74 6f 20 74 72 61 6e 73 70 61 72 65 6e 74 6c 79  to transparently
3880: 20 68 61 6e 64 6c 65 20 74 69 6d 65 6f 75 74 73   handle timeouts
3890: 20 0a 20 20 20 20 20 20 20 20 77 68 69 6c 65 20   .        while 
38a0: 77 61 69 74 69 6e 67 20 6f 6e 20 74 68 65 20 64  waiting on the d
38b0: 61 74 61 62 61 73 65 20 74 6f 20 62 65 63 6f 6d  atabase to becom
38c0: 65 20 61 76 61 69 6c 61 62 6c 65 20 28 74 79 70  e available (typ
38d0: 69 63 61 6c 6c 79 20 77 68 65 6e 20 61 20 77 72  ically when a wr
38e0: 69 74 65 72 20 69 73 20 0a 20 20 20 20 20 20 20  iter is .       
38f0: 20 77 61 69 74 69 6e 67 20 6f 6e 20 61 20 72 65   waiting on a re
3900: 61 64 65 72 20 74 6f 20 66 69 6e 69 73 68 2c 20  ader to finish, 
3910: 6f 72 20 61 20 72 65 61 64 65 72 20 69 73 20 77  or a reader is w
3920: 61 69 74 69 6e 67 20 6f 6e 20 61 20 77 72 69 74  aiting on a writ
3930: 65 72 20 74 6f 20 66 69 6e 69 73 68 29 2e 0a 20  er to finish).. 
3940: 20 20 20 20 20 20 20 3c 4c 49 3e 0a 20 20 20 20         <LI>.    
3950: 20 20 20 20 4c 6f 74 73 20 6f 66 20 63 6f 64 65      Lots of code
3960: 20 63 6c 65 61 6e 75 70 26 6e 62 73 70 3b 61 73   cleanup&nbsp;as
3970: 20 73 75 67 67 65 73 74 65 64 26 6e 62 73 70 3b   suggested&nbsp;
3980: 62 79 20 74 68 65 20 43 6f 64 65 20 41 6e 61 6c  by the Code Anal
3990: 79 7a 65 72 20 28 46 78 43 6f 70 29 2e 0a 20 20  yzer (FxCop)..  
39a0: 20 20 20 20 20 20 3c 4c 49 3e 0a 20 20 20 20 20        <LI>.     
39b0: 20 20 20 4c 6f 74 73 20 6f 66 20 75 70 64 61 74     Lots of updat
39c0: 65 73 20 74 6f 20 74 68 65 20 68 65 6c 70 66 69  es to the helpfi
39d0: 6c 65 20 28 61 73 20 79 6f 75 20 63 61 6e 20 73  le (as you can s
39e0: 65 65 29 2e 0a 20 20 20 20 20 20 20 20 3c 4c 49  ee)..        <LI
39f0: 3e 0a 20 20 20 20 20 20 20 20 20 20 53 74 61 74  >.          Stat
3a00: 65 6d 65 6e 74 73 26 6e 62 73 70 3b 77 65 72 65  ements&nbsp;were
3a10: 20 61 6c 72 65 61 64 79 20 70 72 65 70 61 72 65   already prepare
3a20: 64 20 6c 61 7a 69 6c 79 26 6e 62 73 70 3b 69 6e  d lazily&nbsp;in
3a30: 20 61 20 53 51 4c 69 74 65 43 6f 6d 6d 61 6e 64   a SQLiteCommand
3a40: 2c 20 62 75 74 20 6e 6f 77 20 0a 20 20 20 20 20  , but now .     
3a50: 20 20 20 20 20 69 74 73 20 65 76 65 6e 20 6d 6f       its even mo
3a60: 72 65 20 6c 61 7a 79 2e 26 6e 62 73 70 3b 20 53  re lazy.&nbsp; S
3a70: 74 61 74 65 6d 65 6e 74 73 20 61 72 65 20 6e 6f  tatements are no
3a80: 77 20 6f 6e 6c 79 20 70 72 65 70 61 72 65 64 20  w only prepared 
3a90: 69 66 20 74 68 65 20 73 74 61 74 65 6d 65 6e 74  if the statement
3aa0: 73 20 0a 20 20 20 20 20 20 20 20 20 20 68 61 76  s .          hav
3ab0: 65 6e 27 74 20 62 65 65 6e 20 70 72 65 76 69 6f  en't been previo
3ac0: 75 73 6c 79 20 70 72 65 70 61 72 65 64 20 61 6e  usly prepared an
3ad0: 64 20 61 20 50 72 65 70 61 72 65 28 29 20 66 75  d a Prepare() fu
3ae0: 6e 63 74 69 6f 6e 20 69 73 20 63 61 6c 6c 65 64  nction is called
3af0: 20 28 61 6e 64 20 74 68 65 20 0a 20 20 20 20 20   (and the .     
3b00: 20 20 20 20 20 63 6f 6d 6d 61 6e 64 20 69 73 20       command is 
3b10: 61 73 73 6f 63 69 61 74 65 64 20 77 69 74 68 20  associated with 
3b20: 61 20 63 6f 6e 6e 65 63 74 69 6f 6e 29 20 6f 72  a connection) or
3b30: 20 6a 75 73 74 20 70 72 69 6f 72 20 74 6f 20 74   just prior to t
3b40: 68 65 20 63 6f 6d 6d 61 6e 64 20 62 65 69 6e 67  he command being
3b50: 20 0a 20 20 20 20 20 20 20 20 20 20 65 78 65 63   .          exec
3b60: 75 74 65 64 2e 26 6e 62 73 70 3b 3c 2f 4c 49 3e  uted.&nbsp;</LI>
3b70: 3c 2f 55 4c 3e 0a 20 20 20 20 3c 2f 44 49 56 3e  </UL>.    </DIV>
3b80: 0a 20 20 20 20 3c 50 3e 3c 42 3e 31 2e 30 2e 31  .    <P><B>1.0.1
3b90: 31 20 2d 20 41 75 67 75 73 74 20 31 2c 20 32 30  1 - August 1, 20
3ba0: 30 35 3c 2f 42 3e 3c 42 52 3e 0a 20 20 20 20 3c  05</B><BR>.    <
3bb0: 2f 50 3e 0a 20 20 20 20 3c 55 4c 3e 0a 20 20 20  /P>.    <UL>.   
3bc0: 20 20 20 3c 4c 49 3e 0a 20 20 20 20 20 20 20 20     <LI>.        
3bd0: 3c 53 54 52 4f 4e 47 3e 46 6f 72 20 65 76 65 72  <STRONG>For ever
3be0: 79 74 68 69 6e 67 20 65 78 63 65 70 74 20 74 68  ything except th
3bf0: 65 20 43 6f 6d 70 61 63 74 20 46 72 61 6d 65 77  e Compact Framew
3c00: 6f 72 6b 2c 20 53 79 73 74 65 6d 2e 44 61 74 61  ork, System.Data
3c10: 2e 53 51 4c 69 74 65 2e 44 4c 4c 20 69 73 20 0a  .SQLite.DLL is .
3c20: 20 20 20 20 20 20 20 20 20 20 6e 6f 77 20 74 68            now th
3c30: 65 20 3c 45 4d 3e 6f 6e 6c 79 3c 2f 45 4d 3e 20  e <EM>only</EM> 
3c40: 44 4c 4c 20 72 65 71 75 69 72 65 64 20 74 6f 20  DLL required to 
3c50: 75 73 65 20 74 68 69 73 20 70 72 6f 76 69 64 65  use this provide
3c60: 72 21 3c 2f 53 54 52 4f 4e 47 3e 26 6e 62 73 70  r!</STRONG>&nbsp
3c70: 3b 20 54 68 65 20 0a 20 20 20 20 20 20 61 73 73  ; The .      ass
3c80: 65 6d 62 6c 79 20 69 73 20 6e 6f 77 20 61 20 6d  embly is now a m
3c90: 75 6c 74 69 2d 6d 6f 64 75 6c 65 20 61 73 73 65  ulti-module asse
3ca0: 6d 62 6c 79 2c 20 63 6f 6e 74 61 69 6e 69 6e 67  mbly, containing
3cb0: 20 62 6f 74 68 20 74 68 65 20 6e 61 74 69 76 65   both the native
3cc0: 20 53 51 4c 69 74 65 33 20 0a 20 20 20 20 20 20   SQLite3 .      
3cd0: 63 6f 64 65 62 61 73 65 20 61 6e 64 20 74 68 65  codebase and the
3ce0: 20 43 23 20 63 6c 61 73 73 65 73 20 62 75 69 6c   C# classes buil
3cf0: 74 20 6f 6e 20 74 6f 70 20 6f 66 20 69 74 2e 26  t on top of it.&
3d00: 6e 62 73 70 3b 20 54 68 65 20 43 6f 6d 70 61 63  nbsp; The Compac
3d10: 74 20 46 72 61 6d 65 77 6f 72 6b 20 0a 20 20 20  t Framework .   
3d20: 20 20 20 76 65 72 73 69 6f 6e 20 28 77 68 65 6e     version (when
3d30: 20 63 6f 6d 70 6c 65 74 65 64 29 20 77 69 6c 6c   completed) will
3d40: 20 6e 6f 74 20 62 65 20 61 62 6c 65 20 74 6f 20   not be able to 
3d50: 73 75 70 70 6f 72 74 20 74 68 69 73 20 66 65 61  support this fea
3d60: 74 75 72 65 2c 20 73 6f 20 62 61 63 6b 77 61 72  ture, so backwar
3d70: 64 73 20 0a 20 20 20 20 20 20 63 6f 6d 70 61 74  ds .      compat
3d80: 69 62 69 6c 69 74 79 20 77 69 74 68 20 74 68 65  ibility with the
3d90: 20 43 6f 6d 70 61 63 74 20 46 72 61 6d 65 77 6f   Compact Framewo
3da0: 72 6b 20 68 61 73 20 62 65 65 6e 20 70 72 65 73  rk has been pres
3db0: 65 72 76 65 64 20 66 6f 72 20 74 68 65 20 66 75  erved for the fu
3dc0: 74 75 72 65 2e 0a 20 20 20 20 20 20 3c 4c 49 3e  ture..      <LI>
3dd0: 0a 20 20 20 20 20 20 20 20 46 69 78 65 64 20 61  .        Fixed a
3de0: 20 62 75 67 20 69 6e 20 53 51 4c 69 74 65 43 6f   bug in SQLiteCo
3df0: 6d 6d 61 6e 64 2e 45 78 65 63 75 74 65 53 63 61  mmand.ExecuteSca
3e00: 6c 61 72 28 29 20 74 68 61 74 20 63 61 75 73 65  lar() that cause
3e10: 64 20 69 74 20 74 6f 20 73 74 6f 70 20 65 78 65  d it to stop exe
3e20: 63 75 74 69 6e 67 20 0a 20 20 20 20 20 20 20 20  cuting .        
3e30: 63 6f 6d 6d 61 6e 64 73 20 6f 6e 63 65 20 69 74  commands once it
3e40: 20 6f 62 74 61 69 6e 65 64 20 74 68 65 20 66 69   obtained the fi
3e50: 72 73 74 20 63 6f 6c 75 6d 6e 20 6f 66 20 74 68  rst column of th
3e60: 65 20 66 69 72 73 74 20 72 6f 77 2d 72 65 74 75  e first row-retu
3e70: 72 6e 69 6e 67 20 0a 20 20 20 20 20 20 20 20 72  rning .        r
3e80: 65 73 75 6c 74 73 65 74 2e 26 6e 62 73 70 3b 20  esultset.&nbsp; 
3e90: 41 6e 79 20 72 65 6d 61 69 6e 69 6e 67 20 73 74  Any remaining st
3ea0: 61 74 65 6d 65 6e 74 73 20 61 66 74 65 72 20 74  atements after t
3eb0: 68 65 20 72 6f 77 2d 72 65 74 75 72 6e 69 6e 67  he row-returning
3ec0: 20 73 74 61 74 65 6d 65 6e 74 20 77 61 73 20 0a   statement was .
3ed0: 20 20 20 20 20 20 20 20 69 67 6e 6f 72 65 64 2e          ignored.
3ee0: 0a 20 20 20 20 20 20 3c 2f 4c 49 3e 0a 20 20 20  .      </LI>.   
3ef0: 20 3c 2f 55 4c 3e 0a 20 20 20 20 3c 50 3e 3c 42   </UL>.    <P><B
3f00: 3e 31 2e 30 2e 31 30 20 2d 20 4a 75 6e 65 20 31  >1.0.10 - June 1
3f10: 30 2c 20 32 30 30 35 3c 2f 42 3e 3c 42 52 3e 0a  0, 2005</B><BR>.
3f20: 20 20 20 20 3c 2f 50 3e 0a 20 20 20 20 3c 55 4c      </P>.    <UL
3f30: 3e 0a 20 20 20 20 20 20 3c 4c 49 3e 0a 20 20 20  >.      <LI>.   
3f40: 20 20 20 46 69 78 65 64 20 61 20 62 75 67 20 69     Fixed a bug i
3f50: 6e 20 74 68 65 20 53 51 4c 69 74 65 33 2e 63 73  n the SQLite3.cs
3f60: 20 50 72 65 70 61 72 65 28 29 20 66 75 6e 63 74   Prepare() funct
3f70: 69 6f 6e 20 74 68 61 74 20 63 72 65 61 74 65 64  ion that created
3f80: 20 61 20 73 74 61 74 65 6d 65 6e 74 20 65 76 65   a statement eve
3f90: 6e 20 0a 20 20 20 20 20 20 77 68 65 6e 20 74 68  n .      when th
3fa0: 65 20 53 51 4c 69 74 65 20 65 6e 67 69 6e 65 20  e SQLite engine 
3fb0: 72 65 74 75 72 6e 65 64 20 61 20 4e 55 4c 4c 20  returned a NULL 
3fc0: 70 6f 69 6e 74 65 72 2e 20 54 79 70 69 63 61 6c  pointer. Typical
3fd0: 6c 79 20 74 68 69 73 20 6f 63 63 75 72 73 20 77  ly this occurs w
3fe0: 68 65 6e 20 0a 20 20 20 20 20 20 6d 75 6c 74 69  hen .      multi
3ff0: 70 6c 65 20 73 74 61 74 65 6d 65 6e 74 73 20 61  ple statements a
4000: 72 65 20 70 72 6f 63 65 73 73 65 64 20 61 6e 64  re processed and
4010: 20 74 68 65 72 65 20 61 72 65 20 74 72 61 69 6c   there are trail
4020: 69 6e 67 20 63 6f 6d 6d 65 6e 74 73 20 61 74 20  ing comments at 
4030: 74 68 65 20 65 6e 64 20 6f 66 20 0a 20 20 20 20  the end of .    
4040: 20 20 74 68 65 20 73 74 61 74 65 6d 65 6e 74 2e    the statement.
4050: 0a 20 20 20 20 20 20 3c 4c 49 3e 0a 20 20 20 20  .      <LI>.    
4060: 20 20 20 20 46 69 78 65 64 20 61 20 62 75 67 20      Fixed a bug 
4070: 69 6e 20 53 51 4c 69 74 65 53 74 61 74 65 6d 65  in SQLiteStateme
4080: 6e 74 2e 63 73 20 74 68 61 74 20 72 65 74 72 69  nt.cs that retri
4090: 65 76 65 64 20 70 61 72 61 6d 65 74 65 72 20 6e  eved parameter n
40a0: 61 6d 65 73 20 66 6f 72 20 61 20 0a 20 20 20 20  ames for a .    
40b0: 20 20 20 20 70 61 72 61 6d 65 74 65 72 69 7a 65      parameterize
40c0: 64 20 71 75 65 72 79 2e 26 6e 62 73 70 3b 20 53  d query.&nbsp; S
40d0: 51 4c 69 74 65 27 73 20 70 61 72 61 6d 65 74 65  QLite's paramete
40e0: 72 73 20 61 72 65 20 31 2d 62 61 73 65 64 2c 20  rs are 1-based, 
40f0: 61 6e 64 20 74 68 65 20 66 75 6e 63 74 69 6f 6e  and the function
4100: 20 0a 20 20 20 20 20 20 20 20 77 61 73 20 73 74   .        was st
4110: 61 72 74 69 6e 67 20 61 74 20 30 2e 26 6e 62 73  arting at 0.&nbs
4120: 70 3b 20 54 68 69 73 20 77 61 73 20 66 69 6e 65  p; This was fine
4130: 20 77 68 65 6e 20 61 6c 6c 20 70 61 72 61 6d 65   when all parame
4140: 74 65 72 73 20 77 65 72 65 20 75 6e 6e 61 6d 65  ters were unname
4150: 64 2c 20 62 75 74 20 0a 20 20 20 20 20 20 20 20  d, but .        
4160: 66 6f 72 20 6e 61 6d 65 64 20 70 61 72 61 6d 65  for named parame
4170: 74 65 72 73 20 69 74 20 63 61 75 73 65 64 20 74  ters it caused t
4180: 68 65 20 70 61 72 61 6d 65 74 65 72 73 20 74 6f  he parameters to
4190: 20 62 65 20 6f 75 74 20 6f 66 20 77 68 61 63 6b   be out of whack
41a0: 2e 0a 20 20 20 20 20 20 3c 2f 4c 49 3e 0a 20 20  ..      </LI>.  
41b0: 20 20 3c 2f 55 4c 3e 0a 20 20 20 20 3c 50 3e 3c    </UL>.    <P><
41c0: 42 3e 31 2e 30 2e 30 39 61 20 2d 20 4d 61 79 20  B>1.0.09a - May 
41d0: 32 35 2c 20 32 30 30 35 3c 2f 42 3e 3c 42 52 3e  25, 2005</B><BR>
41e0: 0a 20 20 20 20 3c 2f 50 3e 0a 20 20 20 20 3c 55  .    </P>.    <U
41f0: 4c 3e 0a 20 20 20 20 20 20 3c 4c 49 3e 0a 20 20  L>.      <LI>.  
4200: 20 20 20 20 46 69 78 65 64 20 61 20 62 72 6f 6b      Fixed a brok
4210: 65 6e 20 68 65 6c 70 66 69 6c 65 20 61 6e 64 20  en helpfile and 
4220: 63 6f 72 72 65 63 74 65 64 20 73 6f 6d 65 20 6f  corrected some o
4230: 62 73 6f 6c 65 74 65 20 68 65 6c 70 20 72 65 6d  bsolete help rem
4240: 61 72 6b 73 20 69 6e 20 0a 20 20 20 20 20 20 53  arks in .      S
4250: 51 4c 69 74 65 46 75 6e 63 74 69 6f 6e 2e 63 73  QLiteFunction.cs
4260: 0a 20 20 20 20 20 20 3c 4c 49 3e 0a 20 20 20 20  .      <LI>.    
4270: 20 20 20 20 41 64 64 65 64 20 61 20 76 65 72 73      Added a vers
4280: 69 6f 6e 20 72 65 73 6f 75 72 63 65 20 74 6f 20  ion resource to 
4290: 74 68 65 20 53 51 4c 69 74 65 2e 49 6e 74 65 72  the SQLite.Inter
42a0: 6f 70 2e 44 4c 4c 2e 26 6e 62 73 70 3b 3c 2f 4c  op.DLL.&nbsp;</L
42b0: 49 3e 3c 2f 55 4c 3e 0a 20 20 20 20 3c 50 3e 3c  I></UL>.    <P><
42c0: 42 3e 31 2e 30 2e 30 39 20 2d 20 4d 61 79 20 32  B>1.0.09 - May 2
42d0: 34 2c 20 32 30 30 35 3c 2f 42 3e 3c 42 52 3e 0a  4, 2005</B><BR>.
42e0: 20 20 20 20 3c 2f 50 3e 0a 20 20 20 20 3c 55 4c      </P>.    <UL
42f0: 3e 0a 20 20 20 20 20 20 3c 4c 49 3e 0a 20 20 20  >.      <LI>.   
4300: 20 20 20 43 6f 64 65 20 6d 65 72 67 65 20 77 69     Code merge wi
4310: 74 68 20 74 68 65 20 6c 61 74 65 73 74 20 33 2e  th the latest 3.
4320: 32 31 20 76 65 72 73 69 6f 6e 20 6f 66 20 53 51  21 version of SQ
4330: 4c 69 74 65 2e 0a 20 20 20 20 20 20 3c 4c 49 3e  Lite..      <LI>
4340: 0a 20 20 20 20 20 20 20 20 52 65 6d 6f 76 65 64  .        Removed
4350: 20 6f 62 73 6f 6c 65 74 65 20 6d 65 74 68 6f 64   obsolete method
4360: 73 20 61 6e 64 20 70 72 6f 70 65 72 74 69 65 73  s and properties
4370: 20 66 6f 72 20 57 68 69 64 62 65 79 20 42 65 74   for Whidbey Bet
4380: 61 20 32 3c 2f 4c 49 3e 3c 2f 55 4c 3e 0a 20 20  a 2</LI></UL>.  
4390: 20 20 3c 50 3e 3c 42 3e 31 2e 30 2e 30 38 20 52    <P><B>1.0.08 R
43a0: 65 66 72 65 73 68 20 2d 20 4d 61 72 20 32 34 2c  efresh - Mar 24,
43b0: 20 32 30 30 35 3c 42 52 3e 0a 20 20 20 20 20 20   2005<BR>.      
43c0: 3c 2f 42 3e 0a 20 20 20 20 3c 2f 50 3e 0a 20 20  </B>.    </P>.  
43d0: 20 20 3c 55 4c 3e 0a 20 20 20 20 20 20 3c 4c 49    <UL>.      <LI
43e0: 3e 0a 20 20 20 20 20 20 43 6f 64 65 20 6d 65 72  >.      Code mer
43f0: 67 65 20 77 69 74 68 20 74 68 65 20 6c 61 74 65  ge with the late
4400: 73 74 20 33 2e 32 30 20 76 65 72 73 69 6f 6e 20  st 3.20 version 
4410: 6f 66 20 53 51 4c 69 74 65 2e 0a 20 20 20 20 20  of SQLite..     
4420: 20 3c 4c 49 3e 0a 20 20 20 20 20 20 20 20 52 65   <LI>.        Re
4430: 63 6f 6d 70 69 6c 65 64 20 74 68 65 20 68 65 6c  compiled the hel
4440: 70 20 66 69 6c 65 20 74 6f 20 66 69 78 20 61 20  p file to fix a 
4450: 62 75 69 6c 64 20 65 72 72 6f 72 20 69 6e 20 69  build error in i
4460: 74 2e 0a 20 20 20 20 20 20 3c 2f 4c 49 3e 0a 20  t..      </LI>. 
4470: 20 20 20 3c 2f 55 4c 3e 0a 20 20 20 20 3c 50 3e     </UL>.    <P>
4480: 3c 42 3e 31 2e 30 2e 30 38 20 2d 20 4d 61 72 20  <B>1.0.08 - Mar 
4490: 31 31 2c 20 32 30 30 35 3c 42 52 3e 0a 20 20 20  11, 2005<BR>.   
44a0: 20 20 20 3c 2f 42 3e 0a 20 20 20 20 3c 2f 50 3e     </B>.    </P>
44b0: 0a 20 20 20 20 3c 55 4c 3e 0a 20 20 20 20 20 20  .    <UL>.      
44c0: 3c 4c 49 3e 0a 20 20 20 20 20 20 41 64 64 65 64  <LI>.      Added
44d0: 20 61 64 64 69 74 69 6f 6e 61 6c 20 23 69 66 20   additional #if 
44e0: 73 74 61 74 65 6d 65 6e 74 73 20 74 6f 20 73 75  statements to su
44f0: 70 70 6f 72 74 20 74 68 65 20 6f 6c 64 20 62 65  pport the old be
4500: 74 61 20 31 20 65 64 69 74 69 6f 6e 20 6f 66 20  ta 1 edition of 
4510: 56 53 32 30 30 35 2e 0a 20 20 20 20 20 20 3c 4c  VS2005..      <L
4520: 49 3e 0a 20 20 20 20 20 20 20 20 43 6f 64 65 20  I>.        Code 
4530: 6d 65 72 67 65 64 20 74 68 65 20 53 51 4c 69 74  merged the SQLit
4540: 65 20 33 2e 31 34 20 73 6f 75 72 63 65 2e 0a 20  e 3.14 source.. 
4550: 20 20 20 20 20 3c 2f 4c 49 3e 0a 20 20 20 20 3c       </LI>.    <
4560: 2f 55 4c 3e 0a 20 20 20 20 3c 50 3e 3c 42 3e 31  /UL>.    <P><B>1
4570: 2e 30 2e 30 37 20 2d 20 4d 61 72 20 35 2c 20 32  .0.07 - Mar 5, 2
4580: 30 30 35 3c 2f 42 3e 3c 42 52 3e 0a 20 20 20 20  005</B><BR>.    
4590: 3c 2f 50 3e 0a 20 20 20 20 3c 55 4c 3e 0a 20 20  </P>.    <UL>.  
45a0: 20 20 20 20 3c 4c 49 3e 0a 20 20 20 20 20 20 4d      <LI>.      M
45b0: 61 64 65 20 6d 6f 72 65 20 6f 70 74 69 6d 69 7a  ade more optimiz
45c0: 61 74 69 6f 6e 73 20 74 6f 20 66 72 65 71 75 65  ations to freque
45d0: 6e 74 6c 79 2d 63 61 6c 6c 65 64 20 66 75 6e 63  ntly-called func
45e0: 74 69 6f 6e 73 2c 20 72 65 73 75 6c 74 69 6e 67  tions, resulting
45f0: 20 69 6e 20 0a 20 20 20 20 20 20 73 69 67 6e 69   in .      signi
4600: 66 69 63 61 6e 74 20 70 65 72 66 6f 72 6d 61 6e  ficant performan
4610: 63 65 20 67 61 69 6e 73 20 69 6e 20 61 6c 6c 20  ce gains in all 
4620: 74 65 73 74 73 2e 0a 20 20 20 20 20 20 3c 4c 49  tests..      <LI
4630: 3e 0a 20 20 20 20 20 20 20 20 52 65 63 6f 6d 70  >.        Recomp
4640: 69 6c 65 64 20 74 68 65 20 62 69 6e 61 72 69 65  iled the binarie
4650: 73 20 75 73 69 6e 67 20 74 68 65 20 6c 61 74 65  s using the late
4660: 73 74 20 56 53 32 30 30 35 20 46 65 62 72 75 61  st VS2005 Februa
4670: 72 79 20 43 54 50 2c 20 72 65 73 75 6c 74 69 6e  ry CTP, resultin
4680: 67 20 69 6e 20 79 65 74 20 0a 20 20 20 20 20 20  g in yet .      
4690: 20 20 6d 6f 72 65 20 73 69 67 6e 69 66 69 63 61    more significa
46a0: 6e 74 20 73 70 65 65 64 20 67 61 69 6e 73 2e 26  nt speed gains.&
46b0: 6e 62 73 70 3b 20 54 68 65 20 31 30 30 6b 20 69  nbsp; The 100k i
46c0: 6e 73 65 72 74 20 74 65 73 74 20 75 73 65 64 20  nsert test used 
46d0: 74 6f 20 74 61 6b 65 20 33 2e 35 20 0a 20 20 20  to take 3.5 .   
46e0: 20 20 20 20 20 73 65 63 6f 6e 64 73 20 61 6e 64       seconds and
46f0: 20 74 68 65 20 69 6e 73 65 72 74 77 69 74 68 69   the insertwithi
4700: 64 65 6e 74 69 74 79 20 74 6f 6f 6b 20 61 6c 6d  dentity took alm
4710: 6f 73 74 20 38 20 73 65 63 6f 6e 64 73 2e 26 6e  ost 8 seconds.&n
4720: 62 73 70 3b 20 57 69 74 68 20 74 68 65 20 61 62  bsp; With the ab
4730: 6f 76 65 20 0a 20 20 20 20 20 20 20 20 74 77 6f  ove .        two
4740: 20 63 68 61 6e 67 65 73 2c 20 74 68 6f 73 65 20   changes, those 
4750: 74 65 73 74 73 20 61 72 65 20 6e 6f 77 20 65 78  tests are now ex
4760: 65 63 75 74 69 6e 67 20 69 6e 20 31 2e 39 20 61  ecuting in 1.9 a
4770: 6e 64 20 34 2e 39 20 73 65 63 6f 6e 64 73 20 72  nd 4.9 seconds r
4780: 65 73 70 65 63 74 69 76 65 6c 79 2e 3c 2f 4c 49  espectively.</LI
4790: 3e 3c 2f 55 4c 3e 0a 20 20 20 20 3c 50 3e 3c 42  ></UL>.    <P><B
47a0: 3e 31 2e 30 2e 30 36 20 2d 20 4d 61 72 20 31 2c  >1.0.06 - Mar 1,
47b0: 20 32 30 30 35 3c 42 52 3e 0a 20 20 20 20 20 20   2005<BR>.      
47c0: 3c 2f 42 3e 0a 20 20 20 20 3c 2f 50 3e 0a 20 20  </B>.    </P>.  
47d0: 20 20 3c 55 4c 3e 0a 20 20 20 20 20 20 3c 4c 49    <UL>.      <LI
47e0: 3e 0a 20 20 20 20 20 20 53 70 65 65 64 2d 75 70  >.      Speed-up
47f0: 73 20 74 6f 20 53 51 4c 69 74 65 44 61 74 61 52  s to SQLiteDataR
4800: 65 61 64 65 72 2e 26 6e 62 73 70 3b 20 49 74 20  eader.&nbsp; It 
4810: 77 61 73 20 69 6e 74 65 72 6f 70 27 69 6e 67 20  was interop'ing 
4820: 75 6e 6e 65 63 65 73 73 61 72 69 6c 79 20 65 76  unnecessarily ev
4830: 65 72 79 20 0a 20 20 20 20 20 20 74 69 6d 65 20  ery .      time 
4840: 69 74 20 74 72 69 65 64 20 74 6f 20 66 65 74 63  it tried to fetc
4850: 68 20 61 20 66 69 65 6c 64 20 64 75 65 20 74 6f  h a field due to
4860: 20 61 20 6c 6f 67 69 63 20 65 72 72 6f 72 2e 0a   a logic error..
4870: 20 20 20 20 20 20 3c 4c 49 3e 0a 20 20 20 20 20        <LI>.     
4880: 20 43 68 61 6e 67 65 64 2f 41 64 64 65 64 20 73   Changed/Added s
4890: 6f 6d 65 20 63 6f 64 65 20 74 6f 20 53 51 4c 69  ome code to SQLi
48a0: 74 65 43 6f 6e 76 65 72 74 27 73 20 69 6e 74 65  teConvert's inte
48b0: 72 6e 61 6c 20 44 62 54 79 70 65 2c 20 54 79 70  rnal DbType, Typ
48c0: 65 20 61 6e 64 20 0a 20 20 20 20 20 20 54 79 70  e and .      Typ
48d0: 65 41 66 66 69 6e 69 74 79 20 66 75 6e 63 74 69  eAffinity functi
48e0: 6f 6e 73 2e 0a 20 20 20 20 20 20 3c 4c 49 3e 0a  ons..      <LI>.
48f0: 20 20 20 20 20 20 46 69 78 65 64 20 74 68 65 20        Fixed the 
4900: 53 51 4c 69 74 65 44 61 74 61 52 65 61 64 65 72  SQLiteDataReader
4910: 20 74 6f 20 6f 62 65 79 20 74 68 65 20 66 6c 61   to obey the fla
4920: 67 73 20 73 65 74 20 69 6e 20 74 68 65 20 6f 70  gs set in the op
4930: 74 69 6f 6e 61 6c 20 0a 20 20 20 20 20 20 43 6f  tional .      Co
4940: 6d 6d 61 6e 64 42 65 68 61 76 69 6f 72 20 66 6c  mmandBehavior fl
4950: 61 67 20 66 72 6f 6d 20 53 51 4c 69 74 65 43 6f  ag from SQLiteCo
4960: 6d 6d 61 6e 64 2e 45 78 65 63 75 74 65 52 65 61  mmand.ExecuteRea
4970: 64 65 72 28 29 2e 0a 20 20 20 20 20 20 3c 4c 49  der()..      <LI
4980: 3e 0a 20 20 20 20 20 20 43 68 61 6e 67 65 64 20  >.      Changed 
4990: 74 68 65 20 64 65 66 61 75 6c 74 20 70 61 67 65  the default page
49a0: 20 73 69 7a 65 20 74 6f 20 31 30 32 34 20 74 6f   size to 1024 to
49b0: 20 72 65 66 6c 65 63 74 20 74 68 65 20 64 65 66   reflect the def
49c0: 61 75 6c 74 73 20 6f 66 20 53 51 4c 69 74 65 2e  aults of SQLite.
49d0: 26 6e 62 73 70 3b 20 0a 20 20 20 20 20 20 49 67  &nbsp; .      Ig
49e0: 6e 6f 72 65 73 20 74 68 65 20 22 50 61 67 65 20  nores the "Page 
49f0: 53 69 7a 65 22 20 63 6f 6e 6e 65 63 74 69 6f 6e  Size" connection
4a00: 20 73 74 72 69 6e 67 20 6f 70 74 69 6f 6e 20 66   string option f
4a10: 6f 72 20 6d 65 6d 6f 72 79 20 64 61 74 61 62 61  or memory databa
4a20: 73 65 73 2c 20 61 73 20 74 65 73 74 73 20 0a 20  ses, as tests . 
4a30: 20 20 20 20 20 72 65 76 65 61 6c 65 64 20 74 68       revealed th
4a40: 61 74 20 63 68 61 6e 67 69 6e 67 20 69 74 20 72  at changing it r
4a50: 65 73 75 6c 74 65 64 20 69 6e 20 6d 65 6d 6f 72  esulted in memor
4a60: 79 20 63 6f 72 72 75 70 74 69 6f 6e 20 65 72 72  y corruption err
4a70: 6f 72 73 2e 0a 20 20 20 20 20 20 3c 4c 49 3e 0a  ors..      <LI>.
4a80: 20 20 20 20 20 20 20 20 50 65 72 66 6f 72 6d 61          Performa
4a90: 6e 63 65 20 65 6e 68 61 6e 63 65 6d 65 6e 74 73  nce enhancements
4aa0: 20 74 6f 20 74 68 65 20 53 51 4c 69 74 65 43 6f   to the SQLiteCo
4ab0: 6d 6d 61 6e 64 20 61 6e 64 20 53 51 4c 69 74 65  mmand and SQLite
4ac0: 53 74 61 74 65 6d 65 6e 74 20 63 6c 61 73 73 65  Statement classe
4ad0: 73 20 77 68 69 63 68 20 0a 20 20 20 20 20 20 20  s which .       
4ae0: 20 72 65 64 75 63 65 64 20 74 68 65 20 31 30 30   reduced the 100
4af0: 2c 30 30 30 20 72 6f 77 20 69 6e 73 65 72 74 20  ,000 row insert 
4b00: 65 78 65 63 75 74 69 6f 6e 20 74 69 6d 65 20 61  execution time a
4b10: 73 20 77 65 6c 6c 20 61 73 20 74 68 65 20 76 61  s well as the va
4b20: 72 69 6f 75 73 20 46 75 6e 63 74 69 6f 6e 20 0a  rious Function .
4b30: 20 20 20 20 20 20 20 20 65 78 65 63 75 74 69 6f          executio
4b40: 6e 20 74 69 6d 65 73 20 73 69 67 6e 69 66 69 63  n times signific
4b50: 61 6e 74 6c 79 2e 0a 20 20 20 20 20 20 3c 2f 4c  antly..      </L
4b60: 49 3e 0a 20 20 20 20 3c 2f 55 4c 3e 0a 20 20 20  I>.    </UL>.   
4b70: 20 3c 50 3e 3c 42 3e 31 2e 30 2e 30 35 20 2d 20   <P><B>1.0.05 - 
4b80: 46 65 62 20 32 35 2c 20 32 30 30 35 3c 2f 42 3e  Feb 25, 2005</B>
4b90: 0a 20 20 20 20 3c 2f 50 3e 0a 20 20 20 20 3c 55  .    </P>.    <U
4ba0: 4c 3e 0a 20 20 20 20 20 20 3c 4c 49 3e 0a 20 20  L>.      <LI>.  
4bb0: 20 20 20 20 46 69 78 65 64 20 74 68 65 20 53 51      Fixed the SQ
4bc0: 4c 69 74 65 33 20 43 23 20 63 6c 61 73 73 20 73  Lite3 C# class s
4bd0: 74 65 70 2f 72 65 73 65 74 20 66 75 6e 63 74 69  tep/reset functi
4be0: 6f 6e 73 20 74 6f 20 61 63 63 6f 6d 6f 64 61 74  ons to accomodat
4bf0: 65 20 73 63 68 65 6d 61 20 63 68 61 6e 67 65 73  e schema changes
4c00: 20 0a 20 20 20 20 20 20 74 68 61 74 20 69 6e 76   .      that inv
4c10: 61 6c 69 64 61 74 65 20 61 20 70 72 65 70 61 72  alidate a prepar
4c20: 65 64 20 73 74 61 74 65 6d 65 6e 74 2e 26 6e 62  ed statement.&nb
4c30: 73 70 3b 20 53 74 61 74 65 6d 65 6e 74 73 20 61  sp; Statements a
4c40: 72 65 20 72 65 63 6f 6d 70 69 6c 65 64 20 0a 20  re recompiled . 
4c50: 20 20 20 20 20 74 72 61 6e 73 70 61 72 65 6e 74       transparent
4c60: 6c 79 2e 0a 20 20 20 20 20 20 3c 4c 49 3e 0a 20  ly..      <LI>. 
4c70: 20 20 20 20 20 4d 6f 76 65 64 20 61 6c 6c 20 6e       Moved all n
4c80: 61 74 69 76 65 20 44 4c 4c 20 64 65 63 6c 61 72  ative DLL declar
4c90: 61 74 69 6f 6e 73 20 74 6f 20 61 6e 20 55 6e 73  ations to an Uns
4ca0: 61 66 65 4e 61 74 69 76 65 4d 65 74 68 6f 64 73  afeNativeMethods
4cb0: 20 63 6c 61 73 73 2e 0a 20 20 20 20 20 20 3c 4c   class..      <L
4cc0: 49 3e 0a 20 20 20 20 20 20 53 70 6c 69 74 20 73  I>.      Split s
4cd0: 65 76 65 72 61 6c 20 63 6c 61 73 73 65 73 20 69  everal classes i
4ce0: 6e 74 6f 20 74 68 65 69 72 20 6f 77 6e 20 6d 6f  nto their own mo
4cf0: 64 75 6c 65 73 20 66 6f 72 20 72 65 61 64 61 62  dules for readab
4d00: 69 6c 69 74 79 2e 0a 20 20 20 20 20 20 3c 4c 49  ility..      <LI
4d10: 3e 0a 20 20 20 20 20 20 52 65 6e 61 6d 65 64 20  >.      Renamed 
4d20: 6d 61 6e 79 20 69 6e 74 65 72 6e 61 6c 20 76 61  many internal va
4d30: 72 69 61 62 6c 65 73 2c 20 72 65 76 69 65 77 65  riables, reviewe
4d40: 64 20 61 63 63 65 73 73 20 74 6f 20 76 61 72 69  d access to vari
4d50: 61 62 6c 65 73 20 6d 61 72 6b 65 64 20 61 73 20  ables marked as 
4d60: 0a 20 20 20 20 20 20 69 6e 74 65 72 6e 61 6c 20  .      internal 
4d70: 61 6e 64 20 61 6c 74 65 72 65 64 20 74 68 65 69  and altered thei
4d80: 72 20 70 72 6f 74 65 63 74 69 6f 6e 20 6c 65 76  r protection lev
4d90: 65 6c 73 20 61 63 63 6f 72 64 69 6e 67 6c 79 2e  els accordingly.
4da0: 0a 20 20 20 20 20 20 3c 4c 49 3e 0a 20 20 20 20  .      <LI>.    
4db0: 20 20 44 75 65 20 74 6f 20 74 68 65 20 70 72 65    Due to the pre
4dc0: 73 65 6e 63 65 20 6f 66 20 74 68 65 20 61 6c 74  sence of the alt
4dd0: 65 72 65 64 20 73 71 6c 69 74 65 33 20 63 6f 64  ered sqlite3 cod
4de0: 65 62 61 73 65 20 61 6e 64 20 73 6f 20 6d 61 6e  ebase and so man
4df0: 79 20 61 64 64 65 64 20 69 6e 74 65 72 6f 70 20  y added interop 
4e00: 0a 20 20 20 20 20 20 66 75 6e 63 74 69 6f 6e 73  .      functions
4e10: 2c 20 49 20 64 65 63 69 64 65 64 20 74 6f 20 72  , I decided to r
4e20: 65 6e 61 6d 65 20 74 68 65 20 73 71 6c 69 74 65  ename the sqlite
4e30: 33 20 43 20 70 72 6f 6a 65 63 74 20 61 6e 64 20  3 C project and 
4e40: 74 68 65 20 44 4c 4c 20 74 6f 20 0a 20 20 20 20  the DLL to .    
4e50: 20 20 53 51 4c 69 74 65 2e 49 6e 74 65 72 6f 70    SQLite.Interop
4e60: 2e 44 4c 4c 2e 26 6e 62 73 70 3b 20 54 68 69 73  .DLL.&nbsp; This
4e70: 20 69 73 20 74 68 65 20 73 61 6d 65 20 63 6f 72   is the same cor
4e80: 65 20 73 71 6c 69 74 65 33 20 63 6f 64 65 62 61  e sqlite3 codeba
4e90: 73 65 20 62 75 74 20 64 65 73 69 67 6e 65 64 20  se but designed 
4ea0: 0a 20 20 20 20 20 20 73 70 65 63 69 66 69 63 61  .      specifica
4eb0: 6c 6c 79 20 66 6f 72 20 74 68 69 73 20 41 44 4f  lly for this ADO
4ec0: 2e 4e 45 54 20 70 72 6f 76 69 64 65 72 2e 26 6e  .NET provider.&n
4ed0: 62 73 70 3b 20 54 68 69 73 20 65 6c 69 6d 69 6e  bsp; This elimin
4ee0: 61 74 65 73 20 61 6e 79 20 70 6f 73 73 69 62 69  ates any possibi
4ef0: 6c 69 74 79 20 0a 20 20 20 20 20 20 6f 66 20 73  lity .      of s
4f00: 6f 6d 65 6f 6e 65 20 64 72 6f 70 70 69 6e 67 20  omeone dropping 
4f10: 61 6e 6f 74 68 65 72 20 62 75 69 6c 64 20 6f 66  another build of
4f20: 20 73 71 6c 69 74 65 33 2e 64 6c 6c 20 69 6e 74   sqlite3.dll int
4f30: 6f 20 74 68 65 20 73 79 73 74 65 6d 20 61 6e 64  o the system and
4f40: 20 72 65 6e 64 65 72 69 6e 67 20 0a 20 20 20 20   rendering .    
4f50: 20 20 74 68 65 20 70 72 6f 76 69 64 65 72 20 69    the provider i
4f60: 6e 6f 70 65 72 61 62 6c 65 2e 26 6e 62 73 70 3b  noperable.&nbsp;
4f70: 20 49 6e 20 74 68 65 20 66 75 74 75 72 65 20 69   In the future i
4f80: 66 20 74 68 65 20 66 6f 6c 6b 73 20 61 74 20 73  f the folks at s
4f90: 71 6c 69 74 65 2e 6f 72 67 20 66 69 6e 61 6c 6c  qlite.org finall
4fa0: 79 20 0a 20 20 20 20 20 20 69 6e 74 72 6f 64 75  y .      introdu
4fb0: 63 65 20 61 20 6d 65 74 68 6f 64 20 6f 66 20 72  ce a method of r
4fc0: 65 74 72 69 65 76 69 6e 67 20 63 6f 6c 75 6d 6e  etrieving column
4fd0: 20 75 73 61 67 65 20 66 6f 72 20 61 6e 20 61 72   usage for an ar
4fe0: 62 69 74 72 61 72 79 20 70 72 65 70 61 72 65 64  bitrary prepared
4ff0: 20 0a 20 20 20 20 20 20 73 74 61 74 65 6d 65 6e   .      statemen
5000: 74 2c 20 49 27 6c 6c 20 72 65 74 6f 6f 6c 20 74  t, I'll retool t
5010: 68 69 73 20 6c 69 62 72 61 72 79 20 74 6f 20 62  his library to b
5020: 65 20 61 20 6c 69 67 68 74 77 65 69 67 68 74 20  e a lightweight 
5030: 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 20 77 72  function call wr
5040: 61 70 70 65 72 20 0a 20 20 20 20 20 20 61 72 6f  apper .      aro
5050: 75 6e 64 20 74 68 65 20 63 6f 72 65 20 62 69 6e  und the core bin
5060: 61 72 79 20 64 69 73 74 72 69 62 75 74 69 6f 6e  ary distribution
5070: 2e 0a 20 20 20 20 20 20 3c 4c 49 3e 0a 20 20 20  ..      <LI>.   
5080: 20 20 20 41 64 64 65 64 20 5b 53 75 70 70 72 65     Added [Suppre
5090: 73 73 55 6e 6d 61 6e 61 67 65 64 43 6f 64 65 53  ssUnmanagedCodeS
50a0: 65 63 75 72 69 74 79 5d 20 61 74 74 72 69 62 75  ecurity] attribu
50b0: 74 65 20 74 6f 20 74 68 65 20 55 6e 73 61 66 65  te to the Unsafe
50c0: 4e 61 74 69 76 65 4d 65 74 68 6f 64 73 20 0a 20  NativeMethods . 
50d0: 20 20 20 20 20 63 6c 61 73 73 20 77 68 69 63 68       class which
50e0: 20 62 72 69 6e 67 73 20 56 53 32 30 30 35 20 4e   brings VS2005 N
50f0: 6f 76 65 6d 62 65 72 20 43 54 50 20 65 78 65 63  ovember CTP exec
5100: 75 74 69 6f 6e 20 73 70 65 65 64 73 20 69 6e 6c  ution speeds inl
5110: 69 6e 65 20 77 69 74 68 20 74 68 65 20 0a 20 20  ine with the .  
5120: 20 20 20 20 44 65 63 65 6d 62 65 72 20 43 54 50      December CTP
5130: 2e 0a 20 20 20 20 20 20 3c 4c 49 3e 0a 20 20 20  ..      <LI>.   
5140: 20 20 20 20 20 41 64 64 65 64 20 61 20 3c 42 3e       Added a <B>
5150: 62 69 6e 3c 2f 42 3e 0a 20 20 20 20 20 20 64 69  bin</B>.      di
5160: 72 65 63 74 6f 72 79 20 74 6f 20 74 68 65 20 70  rectory to the p
5170: 72 6f 6a 65 63 74 20 72 6f 6f 74 20 77 68 65 72  roject root wher
5180: 65 20 70 72 65 2d 63 6f 6d 70 69 6c 65 64 20 62  e pre-compiled b
5190: 69 6e 61 72 69 65 73 20 63 61 6e 20 62 65 20 66  inaries can be f
51a0: 6f 75 6e 64 2e 0a 20 20 20 20 20 20 3c 4c 49 3e  ound..      <LI>
51b0: 0a 20 20 20 20 20 20 20 20 41 64 64 65 64 20 61  .        Added a
51c0: 20 3c 42 3e 64 6f 63 3c 2f 42 3e 0a 20 20 20 20   <B>doc</B>.    
51d0: 20 20 64 69 72 65 63 74 6f 72 79 20 77 68 65 72    directory wher
51e0: 65 20 70 72 65 6c 69 6d 69 6e 61 72 79 20 64 6f  e preliminary do
51f0: 63 75 6d 65 6e 74 61 74 69 6f 6e 20 6f 6e 20 74  cumentation on t
5200: 68 65 20 63 6c 61 73 73 20 6c 69 62 72 61 72 79  he class library
5210: 20 63 61 6e 20 62 65 20 66 6f 75 6e 64 2e 0a 20   can be found.. 
5220: 20 20 20 20 20 3c 4c 49 3e 0a 20 20 20 20 20 20       <LI>.      
5230: 20 20 44 6f 63 75 6d 65 6e 74 65 64 20 61 20 6c    Documented a l
5240: 6f 74 20 6d 6f 72 65 20 6f 66 20 74 68 65 20 63  ot more of the c
5250: 6c 61 73 73 65 73 20 69 6e 74 65 72 6e 61 6c 6c  lasses internall
5260: 79 2e 0a 20 20 20 20 20 20 3c 2f 4c 49 3e 0a 20  y..      </LI>. 
5270: 20 20 20 3c 2f 55 4c 3e 0a 20 20 20 20 3c 50 3e     </UL>.    <P>
5280: 3c 42 3e 31 2e 30 2e 30 34 20 2d 20 46 65 62 20  <B>1.0.04 - Feb 
5290: 32 34 2c 20 32 30 30 35 3c 2f 42 3e 0a 20 20 20  24, 2005</B>.   
52a0: 20 3c 2f 50 3e 0a 20 20 20 20 3c 55 4c 3e 0a 20   </P>.    <UL>. 
52b0: 20 20 20 20 20 3c 4c 49 3e 0a 20 20 20 20 20 20       <LI>.      
52c0: 52 65 6d 6f 76 65 64 20 74 68 65 20 53 51 4c 69  Removed the SQLi
52d0: 74 65 43 6f 6e 74 65 78 74 20 63 6c 61 73 73 20  teContext class 
52e0: 61 6e 64 20 72 65 76 61 6d 70 65 64 20 74 68 65  and revamped the
52f0: 20 77 61 79 20 55 73 65 72 46 75 6e 63 74 69 6f   way UserFunctio
5300: 6e 73 20 77 6f 72 6b 20 74 6f 20 0a 20 20 20 20  ns work to .    
5310: 20 20 73 69 6d 70 6c 69 66 79 20 74 68 65 20 69    simplify the i
5320: 6d 6c 65 6d 65 6e 74 61 74 69 6f 6e 2e 0a 20 20  mlementation..  
5330: 20 20 20 20 3c 4c 49 3e 0a 20 20 20 20 20 20 46      <LI>.      F
5340: 69 78 65 64 20 61 20 63 6f 75 6e 74 69 6e 67 20  ixed a counting 
5350: 62 75 67 20 69 6e 20 74 68 65 20 54 65 73 74 43  bug in the TestC
5360: 61 73 65 73 20 63 6c 61 73 73 2c 20 73 70 65 63  ases class, spec
5370: 69 66 69 63 61 6c 6c 79 20 69 6e 20 74 68 65 20  ifically in the 
5380: 66 75 6e 63 74 69 6f 6e 20 74 65 73 74 73 20 0a  function tests .
5390: 20 20 20 20 20 20 77 68 65 72 65 20 49 20 77 61        where I wa
53a0: 73 6e 27 74 20 72 65 73 65 74 74 69 6e 67 20 74  sn't resetting t
53b0: 68 65 20 63 6f 75 6e 74 65 72 20 61 6e 64 20 69  he counter and i
53c0: 74 20 77 61 73 20 63 6f 6e 73 65 71 75 65 6e 74  t was consequent
53d0: 6c 79 20 72 65 70 6f 72 74 69 6e 67 20 0a 20 20  ly reporting .  
53e0: 20 20 20 20 69 6e 74 72 69 6e 73 69 63 20 61 6e      intrinsic an
53f0: 64 20 72 61 77 20 73 65 6c 65 63 74 20 63 61 6c  d raw select cal
5400: 6c 73 20 61 73 20 62 65 69 6e 67 20 6d 75 63 68  ls as being much
5410: 20 6d 75 63 68 20 66 61 73 74 65 72 20 74 68 61   much faster tha
5420: 6e 20 74 68 65 79 20 61 63 74 75 61 6c 6c 79 20  n they actually 
5430: 0a 20 20 20 20 20 20 77 65 72 65 2e 26 6e 62 73  .      were.&nbs
5440: 70 3b 20 54 68 65 20 6e 75 6d 62 65 72 73 20 61  p; The numbers a
5450: 72 65 20 6e 6f 77 20 6d 75 63 68 20 63 6c 6f 73  re now much clos
5460: 65 72 20 74 6f 20 77 68 61 74 20 49 20 65 78 70  er to what I exp
5470: 65 63 74 65 64 20 66 6f 72 20 70 65 72 66 6f 72  ected for perfor
5480: 6d 61 6e 63 65 2c 20 0a 20 20 20 20 20 20 77 69  mance, .      wi
5490: 74 68 20 2e 4e 45 54 20 75 73 65 72 2d 66 75 6e  th .NET user-fun
54a0: 63 74 69 6f 6e 73 20 73 74 69 6c 6c 20 62 65 69  ctions still bei
54b0: 6e 67 20 74 68 65 20 73 6c 6f 77 65 73 74 2c 20  ng the slowest, 
54c0: 62 75 74 20 6f 6e 6c 79 20 62 79 20 61 20 73 6d  but only by a sm
54d0: 61 6c 6c 20 6d 61 72 67 69 6e 2e 0a 20 20 20 20  all margin..    
54e0: 20 20 3c 4c 49 3e 0a 20 20 20 20 20 20 53 6d 61    <LI>.      Sma
54f0: 6c 6c 20 70 65 72 66 6f 72 6d 61 6e 63 65 20 74  ll performance t
5500: 77 65 61 6b 73 20 74 6f 20 53 51 4c 69 74 65 44  weaks to SQLiteD
5510: 61 74 61 52 65 61 64 65 72 2e 0a 20 20 20 20 20  ataReader..     
5520: 20 3c 4c 49 3e 0a 20 20 20 20 20 20 41 64 64 65   <LI>.      Adde
5530: 64 20 50 61 67 65 53 69 7a 65 20 74 6f 20 74 68  d PageSize to th
5540: 65 20 53 51 4c 69 74 65 43 6f 6e 6e 65 63 74 69  e SQLiteConnecti
5550: 6f 6e 53 74 72 69 6e 67 42 75 69 6c 64 65 72 20  onStringBuilder 
5560: 61 6e 64 20 73 75 62 73 65 71 75 65 6e 74 6c 79  and subsequently
5570: 20 74 6f 20 74 68 65 20 0a 20 20 20 20 20 20 53   to the .      S
5580: 51 4c 69 74 65 43 6f 6e 6e 65 63 74 69 6f 6e 0a  QLiteConnection.
5590: 20 20 20 20 20 20 3c 4c 49 3e 0a 20 20 20 20 20        <LI>.     
55a0: 20 20 20 41 64 64 65 64 20 61 20 50 52 41 47 4d     Added a PRAGM
55b0: 41 20 65 6e 63 6f 64 69 6e 67 3d 58 58 58 20 65  A encoding=XXX e
55c0: 78 65 63 75 74 69 6f 6e 20 73 74 61 74 65 6d 65  xecution stateme
55d0: 6e 74 20 74 6f 20 74 68 65 20 53 51 4c 69 74 65  nt to the SQLite
55e0: 43 6f 6e 6e 65 63 74 69 6f 6e 20 61 66 74 65 72  Connection after
55f0: 20 0a 20 20 20 20 20 20 20 20 6f 70 65 6e 69 6e   .        openin
5600: 67 20 61 20 63 6f 6e 6e 65 63 74 69 6f 6e 2e 0a  g a connection..
5610: 20 20 20 20 20 20 3c 2f 4c 49 3e 0a 20 20 20 20        </LI>.    
5620: 3c 2f 55 4c 3e 0a 20 20 20 20 3c 50 3e 3c 42 3e  </UL>.    <P><B>
5630: 31 2e 30 2e 30 33 20 2d 20 46 65 62 20 32 33 2c  1.0.03 - Feb 23,
5640: 20 32 30 30 35 3c 2f 42 3e 0a 20 20 20 20 3c 2f   2005</B>.    </
5650: 50 3e 0a 20 20 20 20 3c 55 4c 3e 0a 20 20 20 20  P>.    <UL>.    
5660: 20 20 3c 4c 49 3e 0a 20 20 20 20 20 20 46 69 78    <LI>.      Fix
5670: 65 64 20 75 70 20 53 51 4c 69 74 65 43 6f 6d 6d  ed up SQLiteComm
5680: 61 6e 64 42 75 69 6c 64 65 72 20 74 6f 20 63 6f  andBuilder to co
5690: 72 72 65 63 74 20 69 6d 70 6c 65 6d 65 6e 74 61  rrect implementa
56a0: 74 69 6f 6e 20 65 72 72 6f 72 73 2c 20 77 68 69  tion errors, whi
56b0: 63 68 20 72 65 73 75 6c 74 65 64 20 0a 20 20 20  ch resulted .   
56c0: 20 20 20 69 6e 20 61 6e 20 65 6e 6f 72 6d 6f 75     in an enormou
56d0: 73 20 70 65 72 66 6f 72 6d 61 6e 63 65 20 62 6f  s performance bo
56e0: 6f 73 74 20 69 6e 20 74 68 65 20 49 6e 73 65 72  ost in the Inser
56f0: 74 4d 61 6e 79 20 74 65 73 74 2e 26 6e 62 73 70  tMany test.&nbsp
5700: 3b 26 6e 62 73 70 3b 20 31 30 2c 30 30 30 20 72  ;&nbsp; 10,000 r
5710: 6f 77 20 0a 20 20 20 20 20 20 69 6e 73 65 72 74  ow .      insert
5720: 20 74 68 61 74 20 65 78 65 63 75 74 65 64 20 69   that executed i
5730: 6e 20 31 35 30 30 6d 73 20 6e 6f 77 20 65 78 65  n 1500ms now exe
5740: 63 75 74 65 73 20 69 6e 20 35 30 30 6d 73 2e 0a  cutes in 500ms..
5750: 20 20 20 20 20 20 3c 4c 49 3e 0a 20 20 20 20 20        <LI>.     
5760: 20 46 69 78 65 64 20 73 65 76 65 72 61 6c 20 65   Fixed several e
5770: 72 72 6f 72 73 20 69 6e 20 74 68 65 20 53 51 4c  rrors in the SQL
5780: 69 74 65 33 5f 55 54 46 31 36 20 63 6c 61 73 73  ite3_UTF16 class
5790: 2e 26 6e 62 73 70 3b 20 54 6f 53 74 72 69 6e 67  .&nbsp; ToString
57a0: 28 29 20 77 61 73 20 77 6f 72 6b 69 6e 67 20 0a  () was working .
57b0: 20 20 20 20 20 20 69 6e 63 6f 72 72 65 63 74 6c        incorrectl
57c0: 79 20 61 6e 64 20 74 68 65 20 4f 70 65 6e 28 29  y and the Open()
57d0: 20 6d 65 74 68 6f 64 20 66 61 69 6c 65 64 20 74   method failed t
57e0: 6f 20 72 65 67 69 73 74 65 72 20 75 73 65 72 20  o register user 
57f0: 64 65 66 69 6e 65 64 20 66 75 6e 63 74 69 6f 6e  defined function
5800: 73 20 61 6e 64 20 0a 20 20 20 20 20 20 63 6f 6c  s and .      col
5810: 6c 61 74 69 6f 6e 73 2e 0a 20 20 20 20 20 20 3c  lations..      <
5820: 4c 49 3e 0a 20 20 20 20 20 20 46 69 78 65 64 20  LI>.      Fixed 
5830: 61 20 62 75 67 20 69 6e 20 53 51 4c 69 74 65 43  a bug in SQLiteC
5840: 6f 6d 6d 61 6e 64 2e 43 6c 65 61 72 43 6f 6d 6d  ommand.ClearComm
5850: 61 6e 64 73 28 29 20 77 68 65 72 65 62 79 20 6f  ands() whereby o
5860: 6e 6c 79 20 74 68 65 20 66 69 72 73 74 20 73 74  nly the first st
5870: 61 74 65 6d 65 6e 74 20 0a 20 20 20 20 20 20 77  atement .      w
5880: 61 73 20 62 65 69 6e 67 20 70 72 6f 70 65 72 6c  as being properl
5890: 79 20 63 6c 65 61 6e 65 64 20 75 70 2e 0a 20 20  y cleaned up..  
58a0: 20 20 20 20 3c 4c 49 3e 0a 20 20 20 20 20 20 46      <LI>.      F
58b0: 69 78 65 64 20 61 20 62 75 67 20 69 6e 20 53 51  ixed a bug in SQ
58c0: 4c 69 74 65 44 61 74 61 52 65 61 64 65 72 20 77  LiteDataReader w
58d0: 68 65 72 65 62 79 20 63 61 6c 6c 69 6e 67 20 4e  hereby calling N
58e0: 65 78 74 52 65 73 75 6c 74 28 29 20 77 6f 75 6c  extResult() woul
58f0: 64 20 6e 6f 74 20 70 72 6f 70 65 72 6c 79 20 0a  d not properly .
5900: 20 20 20 20 20 20 72 65 73 65 74 20 74 68 65 20        reset the 
5910: 70 72 65 76 69 6f 75 73 6c 79 2d 65 78 65 63 75  previously-execu
5920: 74 65 64 20 63 6f 6d 6d 61 6e 64 20 69 6e 20 74  ted command in t
5930: 68 65 20 73 65 71 75 65 6e 63 65 2e 0a 20 20 20  he sequence..   
5940: 20 20 20 3c 4c 49 3e 0a 20 20 20 20 20 20 20 20     <LI>.        
5950: 41 64 64 65 64 20 61 6e 20 49 6e 73 65 72 74 4d  Added an InsertM
5960: 61 6e 79 57 69 74 68 49 64 65 6e 74 69 74 79 46  anyWithIdentityF
5970: 65 74 63 68 20 74 65 73 74 2c 20 77 68 69 63 68  etch test, which
5980: 20 61 70 70 65 6e 64 73 20 61 20 73 65 6c 65 63   appends a selec
5990: 74 20 63 6c 61 75 73 65 20 74 6f 20 0a 20 20 20  t clause to .   
59a0: 20 20 20 20 20 70 6f 70 75 6c 61 74 65 20 74 68       populate th
59b0: 65 20 49 44 20 6f 66 20 74 68 65 20 6c 61 73 74  e ID of the last
59c0: 20 69 6e 73 65 72 74 65 64 20 72 6f 77 20 69 6e   inserted row in
59d0: 74 6f 20 74 68 65 20 49 6e 73 65 72 74 43 6f 6d  to the InsertCom
59e0: 6d 61 6e 64 2c 20 64 65 6d 6f 6e 73 74 72 61 74  mand, demonstrat
59f0: 69 6e 67 20 0a 20 20 20 20 20 20 20 20 41 44 4f  ing .        ADO
5a00: 2e 4e 45 54 27 73 20 61 62 69 6c 69 74 79 20 74  .NET's ability t
5a10: 6f 20 61 75 74 6f 2d 66 65 74 63 68 20 69 64 65  o auto-fetch ide
5a20: 6e 74 69 74 79 20 63 6f 6c 75 6d 6e 73 20 6f 6e  ntity columns on
5a30: 20 69 6e 73 65 72 74 2e 0a 20 20 20 20 20 20 3c   insert..      <
5a40: 2f 4c 49 3e 0a 20 20 20 20 3c 2f 55 4c 3e 0a 20  /LI>.    </UL>. 
5a50: 20 20 20 3c 50 3e 3c 42 3e 31 2e 30 2e 30 32 20     <P><B>1.0.02 
5a60: 2d 20 46 65 62 20 32 31 2c 20 32 30 30 35 3c 2f  - Feb 21, 2005</
5a70: 42 3e 3c 2f 50 3e 0a 20 20 20 20 3c 55 4c 3e 0a  B></P>.    <UL>.
5a80: 20 20 20 20 20 20 3c 4c 49 3e 0a 20 20 20 20 20        <LI>.     
5a90: 20 54 77 65 61 6b 73 20 74 6f 20 74 68 65 20 78   Tweaks to the x
5aa0: 78 78 5f 69 6e 74 65 72 6f 70 20 66 75 6e 63 74  xx_interop funct
5ab0: 69 6f 6e 73 20 74 68 61 74 20 72 65 74 75 72 6e  ions that return
5ac0: 20 63 68 61 72 20 2a 27 73 2c 20 73 6f 20 74 68   char *'s, so th
5ad0: 65 79 20 61 6c 73 6f 20 72 65 74 75 72 6e 20 0a  ey also return .
5ae0: 20 20 20 20 20 20 74 68 65 20 6c 65 6e 67 74 68        the length
5af0: 2e 26 6e 62 73 70 3b 20 53 61 76 65 73 20 61 6e  .&nbsp; Saves an
5b00: 20 69 6e 74 65 72 6f 70 20 63 61 6c 6c 20 74 6f   interop call to
5b10: 20 67 65 74 20 74 68 65 20 55 54 46 2d 38 20 73   get the UTF-8 s
5b20: 74 72 69 6e 67 20 6c 65 6e 67 74 68 20 64 75 72  tring length dur
5b30: 69 6e 67 20 0a 20 20 20 20 20 20 63 6f 6e 76 65  ing .      conve
5b40: 72 73 69 6f 6e 20 74 6f 20 61 20 2e 4e 45 54 20  rsion to a .NET 
5b50: 73 74 72 69 6e 67 2e 0a 20 20 20 20 20 20 3c 4c  string..      <L
5b60: 49 3e 0a 20 20 20 20 20 20 52 65 77 6f 72 6b 65  I>.      Reworke
5b70: 64 20 74 68 65 20 77 68 6f 6c 65 20 69 6e 74 65  d the whole inte
5b80: 72 6f 70 2e 63 20 74 68 69 6e 67 20 69 6e 74 6f  rop.c thing into
5b90: 20 69 6e 74 65 72 6f 70 2e 68 20 61 6e 64 20 72   interop.h and r
5ba0: 65 64 75 63 65 64 20 74 68 65 20 63 6f 64 65 20  educed the code 
5bb0: 72 65 71 75 69 72 65 64 20 0a 20 20 20 20 20 20  required .      
5bc0: 74 6f 20 6d 65 72 67 65 20 74 68 65 20 6d 61 69  to merge the mai
5bd0: 6e 20 73 71 6c 69 74 65 33 20 63 6f 64 65 62 61  n sqlite3 codeba
5be0: 73 65 2e 0a 20 20 20 20 20 20 3c 4c 49 3e 0a 20  se..      <LI>. 
5bf0: 20 20 20 20 20 20 20 41 64 64 65 64 20 73 75 70         Added sup
5c00: 70 6f 72 74 20 66 6f 72 20 75 73 65 72 2d 64 65  port for user-de
5c10: 66 69 6e 65 64 20 63 6f 6c 6c 61 74 69 6f 6e 73  fined collations
5c20: 2e 0a 20 20 20 20 20 20 3c 2f 4c 49 3e 0a 20 20  ..      </LI>.  
5c30: 20 20 3c 2f 55 4c 3e 0a 20 20 3c 2f 62 6f 64 79    </UL>.  </body
5c40: 3e 0a 3c 2f 68 74 6d 6c 3e 0a                    >.</html>.