Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | 1.09 |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | sourceforge |
Files: | files | file ages | folders |
SHA1: |
f1e8146eae6af444c97cc51efed643b5 |
User & Date: | rmsimpson 2005-05-24 22:32:19.000 |
Context
2005-05-25
| ||
19:07 | Previous commit was incorrectly uploaded check-in: d86242a84c user: rmsimpson tags: sourceforge | |
2005-05-24
| ||
22:32 | 1.09 check-in: f1e8146eae user: rmsimpson tags: sourceforge | |
22:12 | VS2005 Beta 2 updates check-in: f4aec657e0 user: rmsimpson tags: sourceforge | |
Changes
Changes to readme.htm.
1 2 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> | | | | | | | | | | | | > | | > | | < | > | > > | | | > | | | > | | > | > | > | > | < | | > | | | | | | | | | | | | | | | | > | | > | > > | > > > | | | > | > | < | | | > | > | | > > | > | | > | > | | | > | | | | | | | | | | | > | | > | | > | | > | | | | | | | | | > | | > > | > | > | | > | | | | | | > | | > | | > > > | | | | > | | | | > | | > | | | | | > | > | > > | < | > | | | > | | | > | | < < < < < < > > > > > > > > < | > | | | > | | > | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title></title> </head> <body> ADO.NET 2.0 SQLite Data Provider<br> Version 1.0.9 - May 24, 2005<br> Interop using SQLite 3.21<br> Written by Robert Simpson (<a href="mailto:robert@blackcastlesoft.com">robert@blackcastlesoft.com</a>)<br> Released to the public domain, use at your own risk!<br> <br> This provider was written and verified using the Visual Studio 2005 Beta 2 release.<br> <br> The latest version can be downloaded <a href="http://sourceforge.net/projects/sqlite-dotnet2"> here</a> <br> <br> <b></b> <h2> <b>Features:</b><br> </h2> <ul> <li> DbProviderFactory support, just add the XML below at the machine.config and/or app.config level. <li> Full support for ATTACH'ed databases. Exposed as <i>Catalogs</i> in the schema. When cloning a connection, all attached databases are automatically re-attached to the new connection. <li> DbConnection.GetSchema(...) support includes the <i>MetaDataCollections</i>, <i>DataSourceInformation</i>, <i>Columns</i>, <i>Tables</i>, <i>Views</i>, <i>Catalogs</i> and <i>Indexes</i> keywords. <li> Enhanced DbDataReader.GetSchemaTable() functionality returns catalog, namespace and detailed schema information even for complex queries. <li> Named and unnamed parameters. <li> Full UTF-8 and UTF-16 support. <li> Multiple simultaneous DataReaders (one DataReader per Command however). <li> Full support for user-defined scalar and aggregate functions, encapsulated into an easy-to-use base class in which only a couple of overrides are necessary to implement new SQL functions. <li> Full support for user-defined collating sequences, every bit as simple to implement as user-defined functions and uses the same base class.</li></ul> <strong></strong> <h2> <strong>Compiling:</strong></h2> In order to use the SQLiteFactory and have the SQLite data provider enumerated in the DbProviderFactories methods, you must add the following segment into either your application's app.config or the system's machine.config located in the %SystemRoot%\Microsoft.Net\Framework\v2.xxxx\Config folder:<br> <br> <pre> <configuration> <system.data> <DbProviderFactories> <add name="SQLite Data Provider" invariant="System.Data.SQLite" support="3F" description=".Net Framework Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite" /> </DbProviderFactories> </system.data> </configuration> </pre> <br> <h3> Compiling for the Compact Framework</h3> <p> The SQLite.Interop.DLL does not (yet) support a build that includes Windows CE processor architectures. I am aware of the CE port of SQLite and will be investigating their code to see how best to proceed in that regard. I am also waiting for the newer version of SQLite to become available which will offer select metadata information and will cause a major redesign of this library to support it.<br> <b></b> </p> <h2> <b>Development Notes Regarding the SQLite 3 Source Code</b></h2> <p></p> <p> Steps for merging the sqlite3 core codebase:</p> <ol> <li> Download the latest sqlite3 source from <a href="http://www.sqlite.org/download.html"> http://www.sqlite.org/download.html</a> <li> Extract the source code to the <b>SQLite.Interop\src</b> directory of this project <li> Open the <b>src\select.c</b> file. <li> Add <b>#include "../interop.h" </b> to the top of the file where the other include's are. <li> Scroll down the <b>select.c</b> file to around line <b>748</b>. Change the name of the function <b>static void generateColumnNames </b>to <b>static void _generateColumnNames</b> (<i>note the underscore in front of the name</i>). <li> Compile it.</li> </ol> <b></b> <h2> <b>Version History</b></h2> <b>1.09 - May 24, 2005</b><br> <ul> <li> Code merge with the latest 3.21 version of SQLite. <li> Removed obsolete methods and properties for Whidbey Beta 2</li></ul> <b>1.08 Refresh - Mar 24, 2005<br> </b> <ul> <li> Code merge with the latest 3.20 version of SQLite. <li> Recompiled the help file to fix a build error in it.</li> </ul> <b>1.08 - Mar 11, 2005<br> </b> <ul> <li> Added additional #if statements to support the old beta 1 edition of VS2005. <li> Code merged the SQLite 3.14 source.</li> </ul> <b>1.07 - Mar 5, 2005</b><br> <ul> <li> Made more optimizations to frequently-called functions, resulting in significant performance gains in all tests. <li> Recompiled the binaries using the latest VS2005 February CTP, resulting in yet more significant speed gains. The 100k insert test used to take 3.5 seconds and the insertwithidentity took almost 8 seconds. With the above two changes, those tests are now executing in 1.9 and 4.9 seconds respectively.</li></ul> <p> <b>1.06 - Mar 1, 2005<br> </b> </p> <ul> <li> Speed-ups to SQLiteDataReader. It was interop'ing unnecessarily every time it tried to fetch a field due to a logic error. <li> Changed/Added some code to SQLiteConvert's internal DbType, Type and TypeAffinity functions. <li> Fixed the SQLiteDataReader to obey the flags set in the optional CommandBehavior flag from SQLiteCommand.ExecuteReader(). <li> Changed the default page size to 1024 to reflect the defaults of SQLite. Ignores the "Page Size" connection string option for memory databases, as tests revealed that changing it resulted in memory corruption errors. <li> Performance enhancements to the SQLiteCommand and SQLiteStatement classes which reduced the 100,000 row insert execution time as well as the various Function execution times significantly.</li> </ul> <b> <br> 1.05 - Feb 25, 2005</b> <ul> <li> Fixed the SQLite3 C# class step/reset functions to accomodate schema changes that invalidate a prepared statement. Statements are recompiled transparently. <li> Moved all native DLL declarations to an UnsafeNativeMethods class. <li> Split several classes into their own modules for readability. <li> Renamed many internal variables, reviewed access to variables marked as internal and altered their protection levels accordingly. <li> Due to the presence of the altered sqlite3 codebase and so many added interop functions, I decided to rename the sqlite3 C project and the DLL to SQLite.Interop.DLL. This is the same core sqlite3 codebase but designed specifically for this ADO.NET provider. This eliminates any possibility of someone dropping another build of sqlite3.dll into the system and rendering the provider inoperable. In the future if the folks at sqlite.org finally introduce a method of retrieving column usage for an arbitrary prepared statement, I'll retool this library to be a lightweight function call wrapper around the core binary distribution. <li> Added [SuppressUnmanagedCodeSecurity] attribute to the UnsafeNativeMethods class which brings VS2005 November CTP execution speeds inline with the December CTP. <li> Added a <b>bin</b> directory to the project root where pre-compiled binaries can be found. <li> Added a <b>doc</b> directory where preliminary documentation on the class library can be found. <li> Documented a lot more of the classes internally.</li> </ul> <b> <br> 1.04 - Feb 24, 2005</b> <ul> <li> Removed the SQLiteContext class and revamped the way UserFunctions work to simplify the imlementation. <li> Fixed a counting bug in the TestCases class, specifically in the function tests where I wasn't resetting the counter and it was consequently reporting intrinsic and raw select calls as being much much faster than they actually were. The numbers are now much closer to what I expected for performance, with .NET user-functions still being the slowest, but only by a small margin. <li> Small performance tweaks to SQLiteDataReader. <li> Added PageSize to the SQLiteConnectionStringBuilder and subsequently to the SQLiteConnection <li> Added a PRAGMA encoding=XXX execution statement to the SQLiteConnection after opening a connection.</li> </ul> <b>1.03 - Feb 23, 2005</b> <ul> <li> Fixed up SQLiteCommandBuilder to correct implementation errors, which resulted in an enormous performance boost in the InsertMany test. 10,000 row insert that executed in 1500ms now executes in 500ms. <li> Fixed several errors in the SQLite3_UTF16 class. ToString() was working incorrectly and the Open() method failed to register user defined functions and collations. <li> Fixed a bug in SQLiteCommand.ClearCommands() whereby only the first statement was being properly cleaned up. <li> Fixed a bug in SQLiteDataReader whereby calling NextResult() would not properly reset the previously-executed command in the sequence. <li> Added an InsertManyWithIdentityFetch test, which appends a select clause to populate the ID of the last inserted row into the InsertCommand, demonstrating ADO.NET's ability to auto-fetch identity columns on insert.</li> </ul> <p> <b>1.02 - Feb 21, 2005</b></p> <ul> <li> Tweaks to the xxx_interop functions that return char *'s, so they also return the length. Saves an interop call to get the UTF-8 string length during conversion to a .NET string. <li> Reworked the whole interop.c thing into interop.h and reduced the code required to merge the main sqlite3 codebase. <li> Added support for user-defined collations.</li> </ul> </body> </html> |