Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Rename the ManagedVersion property to ProviderVersion. Rename the ManagedSourceId property to ProviderSourceId. Add InteropVersion and InteropSourceId properties to the SQLiteConnection class. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
25174c66f99d125dcc4dabe3c4ff8776 |
User & Date: | mistachkin 2013-09-17 07:04:37.260 |
Context
2013-09-17
| ||
08:00 | Add some simple tests of the new properties. check-in: 06c39db73a user: mistachkin tags: trunk | |
07:04 | Rename the ManagedVersion property to ProviderVersion. Rename the ManagedSourceId property to ProviderSourceId. Add InteropVersion and InteropSourceId properties to the SQLiteConnection class. check-in: 25174c66f9 user: mistachkin tags: trunk | |
2013-09-16
| ||
22:10 | Add ManagedVersion and ManagedSourceId properties to the SQLiteConnection class. check-in: 7eca16cac4 user: mistachkin tags: trunk | |
Changes
Changes to Doc/Extra/version.html.
︙ | ︙ | |||
50 51 52 53 54 55 56 | <li>Check the result of sqlite3_column_name function against NULL.</li> <li>Return false for the SQLiteParameterCollection.IsSynchronized property because it is not thread-safe.</li> <li>Raise the static SQLiteConnection.Changed event when any SQLiteCommand, SQLiteDataReader, or CriticalHandle derived object instance is created. Fix for <a href="http://system.data.sqlite.org/index.html/info/aba4549801">[aba4549801]</a>.</li> <li>Add SQLiteCommand.Execute, SQLiteCommand.ExecuteNonQuery, and SQLiteCommand.ExecuteScalar method overloads that take a CommandBehavior parameter.</li> <li>Revise how the extra object data is passed to the static SQLiteConnection.Changed event. <b>** Potentially Incompatible Change **</b></li> <li>Make sure the database cannot be changed by a query when the CommandBehavior.SchemaOnly flag is used. Fix for <a href="http://system.data.sqlite.org/index.html/info/f8dbab8baf">[f8dbab8baf]</a>. <b>** Potentially Incompatible Change **</b></li> <li>Include the XML documentation files in the NuGet packages. Fix for <a href="http://system.data.sqlite.org/index.html/info/5970d5b0a6">[5970d5b0a6]</a>.</li> | | | 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | <li>Check the result of sqlite3_column_name function against NULL.</li> <li>Return false for the SQLiteParameterCollection.IsSynchronized property because it is not thread-safe.</li> <li>Raise the static SQLiteConnection.Changed event when any SQLiteCommand, SQLiteDataReader, or CriticalHandle derived object instance is created. Fix for <a href="http://system.data.sqlite.org/index.html/info/aba4549801">[aba4549801]</a>.</li> <li>Add SQLiteCommand.Execute, SQLiteCommand.ExecuteNonQuery, and SQLiteCommand.ExecuteScalar method overloads that take a CommandBehavior parameter.</li> <li>Revise how the extra object data is passed to the static SQLiteConnection.Changed event. <b>** Potentially Incompatible Change **</b></li> <li>Make sure the database cannot be changed by a query when the CommandBehavior.SchemaOnly flag is used. Fix for <a href="http://system.data.sqlite.org/index.html/info/f8dbab8baf">[f8dbab8baf]</a>. <b>** Potentially Incompatible Change **</b></li> <li>Include the XML documentation files in the NuGet packages. Fix for <a href="http://system.data.sqlite.org/index.html/info/5970d5b0a6">[5970d5b0a6]</a>.</li> <li>Add InteropVersion, InteropSourceId, ProviderVersion, and ProviderSourceId properties to the SQLiteConnection class.</li> </ul> <p><b>1.0.88.0 - August 7, 2013</b></p> <ul> <li>Various fixes to managed virtual table integration infrastructure.</li> <li>Implement workaround for an incorrect PROCESSOR_ARCHITECTURE being reported. Fix for <a href="http://system.data.sqlite.org/index.html/info/9ac9862611">[9ac9862611]</a>.</li> <li>Modify classes that implement the IDisposable pattern to set the disposed flag after their base classes have been disposed.</li> <li>When automatically registering custom functions, use the executing assembly (i.e. System.Data.SQLite) for reference detection. Fix for <a href="http://system.data.sqlite.org/index.html/info/4e49a58c4c">[4e49a58c4c]</a>.</li> |
︙ | ︙ |
Changes to SQLite.Interop/src/win/SQLite.Interop.rc.
︙ | ︙ | |||
52 53 54 55 56 57 58 59 60 61 62 63 64 65 | VALUE "FileDescription", "System.Data.SQLite Interop Assembly" VALUE "FileVersion", INTEROP_VERSION VALUE "InternalName", "SQLite.Interop" VALUE "LegalCopyright", "Public Domain" VALUE "OriginalFilename", "SQLite.Interop.dll" VALUE "ProductName", "System.Data.SQLite" VALUE "ProductVersion", INTEROP_VERSION VALUE "SQLiteCompanyName", "D. Richard Hipp, et al." VALUE "SQLiteDescription", "SQLite Database Engine" VALUE "SQLiteCopyright", "http://www.sqlite.org/copyright.html" VALUE "SQLiteVersion", SQLITE_VERSION VALUE "SQLiteSourceId", SQLITE_SOURCE_ID END END | > | 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | VALUE "FileDescription", "System.Data.SQLite Interop Assembly" VALUE "FileVersion", INTEROP_VERSION VALUE "InternalName", "SQLite.Interop" VALUE "LegalCopyright", "Public Domain" VALUE "OriginalFilename", "SQLite.Interop.dll" VALUE "ProductName", "System.Data.SQLite" VALUE "ProductVersion", INTEROP_VERSION VALUE "SourceId", INTEROP_SOURCE_ID " " INTEROP_SOURCE_TIMESTAMP VALUE "SQLiteCompanyName", "D. Richard Hipp, et al." VALUE "SQLiteDescription", "SQLite Database Engine" VALUE "SQLiteCopyright", "http://www.sqlite.org/copyright.html" VALUE "SQLiteVersion", SQLITE_VERSION VALUE "SQLiteSourceId", SQLITE_SOURCE_ID END END |
︙ | ︙ |
Changes to SQLite.Interop/src/win/interop.c.
︙ | ︙ | |||
18 19 20 21 22 23 24 25 26 27 28 29 30 31 | extern int RegisterExtensionFunctions(sqlite3 *db); #endif #ifdef SQLITE_OS_WIN #if defined(INTEROP_CODEC) #include "crypt.c" #endif #define INTEROP_DEBUG_NONE (0x0000) #define INTEROP_DEBUG_CLOSE (0x0001) #define INTEROP_DEBUG_FINALIZE (0x0002) #define INTEROP_DEBUG_BACKUP_FINISH (0x0004) #define INTEROP_DEBUG_OPEN (0x0008) #define INTEROP_DEBUG_OPEN16 (0x0010) | > > | 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | extern int RegisterExtensionFunctions(sqlite3 *db); #endif #ifdef SQLITE_OS_WIN #if defined(INTEROP_CODEC) #include "crypt.c" #endif #include "interop.h" #define INTEROP_DEBUG_NONE (0x0000) #define INTEROP_DEBUG_CLOSE (0x0001) #define INTEROP_DEBUG_FINALIZE (0x0002) #define INTEROP_DEBUG_BACKUP_FINISH (0x0004) #define INTEROP_DEBUG_OPEN (0x0008) #define INTEROP_DEBUG_OPEN16 (0x0010) |
︙ | ︙ | |||
212 213 214 215 216 217 218 219 220 221 222 223 224 225 | } }else{ ret = SQLITE_OK; } return ret; } #endif SQLITE_API int WINAPI sqlite3_open_interop(const char *filename, int flags, sqlite3 **ppdb) { int ret; #if defined(INTEROP_DEBUG) && (INTEROP_DEBUG & INTEROP_DEBUG_OPEN) sqlite3InteropDebug("sqlite3_open_interop(): calling sqlite3_open_v2(\"%s\", %d, %p)...\n", filename, flags, ppdb); | > > > > > > > > > > | 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 | } }else{ ret = SQLITE_OK; } return ret; } #endif SQLITE_API const char *sqlite3_libversion_interop(void) { return INTEROP_VERSION; } SQLITE_API const char *sqlite3_sourceid_interop(void) { return INTEROP_SOURCE_ID " " INTEROP_SOURCE_TIMESTAMP; } SQLITE_API int WINAPI sqlite3_open_interop(const char *filename, int flags, sqlite3 **ppdb) { int ret; #if defined(INTEROP_DEBUG) && (INTEROP_DEBUG & INTEROP_DEBUG_OPEN) sqlite3InteropDebug("sqlite3_open_interop(): calling sqlite3_open_v2(\"%s\", %d, %p)...\n", filename, flags, ppdb); |
︙ | ︙ |
Changes to SQLite.Interop/src/win/interop.h.
1 2 3 4 5 6 7 8 | /* * interop.h - * * Written by Joe Mistachkin. * Released to the public domain, use at your own risk! */ #ifndef INTEROP_VERSION | | > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | /* * interop.h - * * Written by Joe Mistachkin. * Released to the public domain, use at your own risk! */ #ifndef INTEROP_VERSION #define INTEROP_VERSION "1.0.89.0" #endif #ifndef INTEROP_SOURCE_ID #define INTEROP_SOURCE_ID "0000000000000000000000000000000000000000" #endif #ifndef INTEROP_SOURCE_TIMESTAMP #define INTEROP_SOURCE_TIMESTAMP "0000-00-00 00:00:00 UTC" #endif |
Changes to Setup/build.bat.
︙ | ︙ | |||
244 245 246 247 248 249 250 | IF DEFINED LOGGING GOTO skip_setLogging IF DEFINED NOLOG GOTO skip_setLogging SET LOGGING="/logger:FileLogger,Microsoft.Build.Engine;Logfile=%LOGDIR%\%LOGPREFIX%_%CONFIGURATION%_%PLATFORM%_%YEAR%_%LOGSUFFIX%.log;Verbosity=diagnostic" :skip_setLogging | > | > > > > > > > | | | | | | | > > > | 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 | IF DEFINED LOGGING GOTO skip_setLogging IF DEFINED NOLOG GOTO skip_setLogging SET LOGGING="/logger:FileLogger,Microsoft.Build.Engine;Logfile=%LOGDIR%\%LOGPREFIX%_%CONFIGURATION%_%PLATFORM%_%YEAR%_%LOGSUFFIX%.log;Verbosity=diagnostic" :skip_setLogging IF NOT DEFINED NOTAG ( IF EXIST Externals\Eagle\bin\EagleShell.exe ( %__ECHO% Externals\Eagle\bin\EagleShell.exe -file Setup\sourceTag.eagle SourceIdMode SQLite.Interop\src\win\interop.h IF ERRORLEVEL 1 ( ECHO Source tagging of interop assembly failed. GOTO errors ) %__ECHO% Externals\Eagle\bin\EagleShell.exe -file Setup\sourceTag.eagle SourceIdMode System.Data.SQLite\SQLitePatchLevel.cs IF ERRORLEVEL 1 ( ECHO Source tagging of provider assembly failed. GOTO errors ) ) ELSE ( ECHO WARNING: Source tagging skipped, Eagle binaries are not available. ) ) ELSE ( ECHO WARNING: Source tagging skipped, disabled via NOTAG environment variable. ) %_VECHO% Logging = '%LOGGING%' %_VECHO% MsBuildArgs = '%MSBUILD_ARGS%' %__ECHO% MSBuild.exe "%SOLUTION%" "/target:%TARGET%" "/property:Configuration=%CONFIGURATION%" "/property:Platform=%PLATFORM%" %LOGGING% %MSBUILD_ARGS% |
︙ | ︙ |
Changes to Setup/sourceTag.eagle.
︙ | ︙ | |||
80 81 82 83 84 85 86 | # # NOTE: Match against this pattern in the "PatchLevel.cs" # file (this pattern is fairly strict to prevent # false-positives). # set pattern1 {AssemblySourceId\(.*?\)} set pattern2 {AssemblySourceTimeStamp\(.*?\)} | | | | | | 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 | # # NOTE: Match against this pattern in the "PatchLevel.cs" # file (this pattern is fairly strict to prevent # false-positives). # set pattern1 {AssemblySourceId\(.*?\)} set pattern2 {AssemblySourceTimeStamp\(.*?\)} set pattern3 {INTEROP_SOURCE_ID\s+".*?"} set pattern4 {INTEROP_SOURCE_TIMESTAMP\s+".*?"} # # NOTE: Build the final replacement specification string. # set subSpec1 [appendArgs AssemblySourceId(\" $id \" )] set subSpec2 [appendArgs AssemblySourceTimeStamp(\" $timeStamp \" )] set subSpec3 [appendArgs INTEROP_SOURCE_ID " \"" $id \"] set subSpec4 [appendArgs INTEROP_SOURCE_TIMESTAMP " \"" $timeStamp \"] # # NOTE: Perform the replacements in the original data # (first match only). # set count 0 |
︙ | ︙ |
Changes to System.Data.SQLite/SQLite3.cs.
︙ | ︙ | |||
360 361 362 363 364 365 366 367 368 369 370 371 372 373 | internal static string SQLiteSourceId { get { return UTF8ToString(UnsafeNativeMethods.sqlite3_sourceid(), -1); } } internal override bool AutoCommit { get { return IsAutocommit(_sql, _sql); } | > > > > > > > > > > > > > > > > > > > > > > > > | 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 | internal static string SQLiteSourceId { get { return UTF8ToString(UnsafeNativeMethods.sqlite3_sourceid(), -1); } } internal static string InteropVersion { get { #if !SQLITE_STANDARD return UTF8ToString(UnsafeNativeMethods.sqlite3_libversion_interop(), -1); #else return null; #endif } } internal static string InteropSourceId { get { #if !SQLITE_STANDARD return UTF8ToString(UnsafeNativeMethods.sqlite3_sourceid_interop(), -1); #else return null; #endif } } internal override bool AutoCommit { get { return IsAutocommit(_sql, _sql); } |
︙ | ︙ |
Changes to System.Data.SQLite/SQLiteConnection.cs.
︙ | ︙ | |||
2457 2458 2459 2460 2461 2462 2463 | /// </summary> public static string DefineConstants { get { return SQLite3.DefineConstants; } } /// <summary> | | > > > > > > > > > > > > > > > > > > > > > > > | | | 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 2470 2471 2472 2473 2474 2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494 2495 2496 2497 2498 2499 2500 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 | /// </summary> public static string DefineConstants { get { return SQLite3.DefineConstants; } } /// <summary> /// Returns the version of the underlying SQLite core library. /// </summary> public static string SQLiteVersion { get { return SQLite3.SQLiteVersion; } } /// <summary> /// This method returns the string whose value is the same as the /// SQLITE_SOURCE_ID C preprocessor macro used when compiling the /// SQLite core library. /// </summary> public static string SQLiteSourceId { get { return SQLite3.SQLiteSourceId; } } /// <summary> /// This method returns the version of the interop SQLite assembly /// used. If the SQLite interop assembly is not in use or the /// necessary information cannot be obtained for any reason, a null /// value may be returned. /// </summary> public static string InteropVersion { get { return SQLite3.InteropVersion; } } /// <summary> /// This method returns the string whose value contains the unique /// identifier for the source checkout used to build the interop /// assembly. If the SQLite interop assembly is not in use or the /// necessary information cannot be obtained for any reason, a null /// value may be returned. /// </summary> public static string InteropSourceId { get { return SQLite3.InteropSourceId; } } /// <summary> /// This method returns the version of the managed components used /// to interact with the SQLite core library. If the necessary /// information cannot be obtained for any reason, a null value may /// be returned. /// </summary> public static string ProviderVersion { get { return (_assembly != null) ? _assembly.GetName().Version.ToString() : null; } } /// <summary> /// This method returns the string whose value contains the unique /// identifier for the source checkout used to build the managed /// components currently executing. If the necessary information /// cannot be obtained for any reason, a null value may be returned. /// </summary> public static string ProviderSourceId { get { if (_assembly == null) return null; string sourceId = null; |
︙ | ︙ |
Changes to System.Data.SQLite/UnsafeNativeMethods.cs.
︙ | ︙ | |||
767 768 769 770 771 772 773 774 775 776 777 778 779 780 | // These functions add existing functionality on top of SQLite and require a little effort to // get working when using the standard SQLite library. #region interop added functionality #if !SQLITE_STANDARD [DllImport(SQLITE_DLL)] internal static extern SQLiteErrorCode sqlite3_close_interop(IntPtr db); [DllImport(SQLITE_DLL)] internal static extern SQLiteErrorCode sqlite3_create_function_interop(IntPtr db, byte[] strName, int nArgs, int nType, IntPtr pvUser, SQLiteCallback func, SQLiteCallback fstep, SQLiteFinalCallback ffinal, int needCollSeq); [DllImport(SQLITE_DLL)] | > > > > > > | 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 | // These functions add existing functionality on top of SQLite and require a little effort to // get working when using the standard SQLite library. #region interop added functionality #if !SQLITE_STANDARD [DllImport(SQLITE_DLL)] internal static extern IntPtr sqlite3_libversion_interop(); [DllImport(SQLITE_DLL)] internal static extern IntPtr sqlite3_sourceid_interop(); [DllImport(SQLITE_DLL)] internal static extern SQLiteErrorCode sqlite3_close_interop(IntPtr db); [DllImport(SQLITE_DLL)] internal static extern SQLiteErrorCode sqlite3_create_function_interop(IntPtr db, byte[] strName, int nArgs, int nType, IntPtr pvUser, SQLiteCallback func, SQLiteCallback fstep, SQLiteFinalCallback ffinal, int needCollSeq); [DllImport(SQLITE_DLL)] |
︙ | ︙ |
Changes to Tests/common.eagle.
︙ | ︙ | |||
738 739 740 741 742 743 744 | tputs $channel no\n } } } } } | | | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 | tputs $channel no\n } } } } } proc checkForSQLiteLibrary { channel } { tputs $channel "---- checking for SQLite core library... " if {[catch { object invoke -flags +NonPublic System.Data.SQLite.SQLite3 \ SQLiteVersion} version] == 0} then { # # NOTE: Check if the returned version was null. If so, make it easy # to spot. # if {[string length $version] == 0} then { set version null } # # NOTE: Attempt to query the Fossil source identifier for the SQLite # core library. # if {[catch { object invoke -flags +NonPublic System.Data.SQLite.SQLite3 \ SQLiteSourceId} sourceId]} then { # # NOTE: We failed to query the Fossil source identifier. # set sourceId unknown } # # NOTE: Check if the returned Fossil source identifier was null. If # so, make it easy to spot. # if {[string length $sourceId] == 0} then { set sourceId null } # # NOTE: Yes, the SQLite core library appears to be available. # addConstraint SQLite tputs $channel [appendArgs "yes (" $version " " $sourceId ")\n"] } else { tputs $channel no\n } } proc checkForSQLiteInterop { channel } { tputs $channel "---- checking for SQLite interop assembly... " if {[catch { object invoke -flags +NonPublic System.Data.SQLite.SQLite3 \ InteropVersion} version] == 0} then { # # NOTE: Check if the returned version was null. If so, make it easy # to spot. # if {[string length $version] == 0} then { set version null } # # NOTE: Attempt to query the Fossil source identifier for the SQLite # core library. # if {[catch { object invoke -flags +NonPublic System.Data.SQLite.SQLite3 \ InteropSourceId} sourceId]} then { # # NOTE: We failed to query the Fossil source identifier. # set sourceId unknown } # # NOTE: Check if the returned Fossil source identifier was null. If # so, make it easy to spot. # if {[string length $sourceId] == 0} then { set sourceId null } # # NOTE: Yes, the SQLite interop assembly appears to be available. # addConstraint SQLiteInterop tputs $channel [appendArgs "yes (" $version " " $sourceId ")\n"] } else { tputs $channel no\n } } |
︙ | ︙ | |||
1939 1940 1941 1942 1943 1944 1945 | } else { tputs $::test_channel unknown\n } } catch { tputs $::test_channel \ | | | | | | | | | | | > > > > > | 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 | } else { tputs $::test_channel unknown\n } } catch { tputs $::test_channel \ "---- source version of \"System.Data.SQLite.dll\"... " if {[catch {object invoke -flags +NonPublic \ System.Data.SQLite.SQLiteConnection ProviderVersion} \ version] == 0} then { if {[string length $version] == 0} then { set version null } tputs $::test_channel [appendArgs $version \n] } else { tputs $::test_channel unknown\n } } catch { tputs $::test_channel \ "---- source checkout of \"System.Data.SQLite.dll\"... " if {[catch {object invoke -flags +NonPublic \ System.Data.SQLite.SQLiteConnection ProviderSourceId} \ sourceId] == 0} then { if {[string length $sourceId] == 0} then { set sourceId null } tputs $::test_channel [appendArgs $sourceId \n] } else { tputs $::test_channel unknown\n } } # # NOTE: Check the available builds of SQLite and System.Data.SQLite. # checkForSQLiteBuilds $::test_channel # # NOTE: Now, we need to know if the SQLite core library is available # (i.e. because the managed-only System.Data.SQLite assembly can # load without it; however, it cannot do anything useful without # it). If we are using the mixed-mode assembly and we already # found it (above), this should always succeed. # checkForSQLiteLibrary $::test_channel # # NOTE: Check if the SQLite interop assembly is available. # checkForSQLiteInterop $::test_channel # # NOTE: Check the SQLite database and temporary directories. # checkForSQLiteDirectories $::test_channel # |
︙ | ︙ |
Changes to readme.htm.
︙ | ︙ | |||
195 196 197 198 199 200 201 | <li>Check the result of sqlite3_column_name function against NULL.</li> <li>Return false for the SQLiteParameterCollection.IsSynchronized property because it is not thread-safe.</li> <li>Raise the static SQLiteConnection.Changed event when any SQLiteCommand, SQLiteDataReader, or CriticalHandle derived object instance is created. Fix for [aba4549801].</li> <li>Add SQLiteCommand.Execute, SQLiteCommand.ExecuteNonQuery, and SQLiteCommand.ExecuteScalar method overloads that take a CommandBehavior parameter.</li> <li>Revise how the extra object data is passed to the static SQLiteConnection.Changed event. <b>** Potentially Incompatible Change **</b></li> <li>Make sure the database cannot be changed by a query when the CommandBehavior.SchemaOnly flag is used. Fix for [f8dbab8baf]. <b>** Potentially Incompatible Change **</b></li> <li>Include the XML documentation files in the NuGet packages. Fix for [5970d5b0a6].</li> | | | 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 | <li>Check the result of sqlite3_column_name function against NULL.</li> <li>Return false for the SQLiteParameterCollection.IsSynchronized property because it is not thread-safe.</li> <li>Raise the static SQLiteConnection.Changed event when any SQLiteCommand, SQLiteDataReader, or CriticalHandle derived object instance is created. Fix for [aba4549801].</li> <li>Add SQLiteCommand.Execute, SQLiteCommand.ExecuteNonQuery, and SQLiteCommand.ExecuteScalar method overloads that take a CommandBehavior parameter.</li> <li>Revise how the extra object data is passed to the static SQLiteConnection.Changed event. <b>** Potentially Incompatible Change **</b></li> <li>Make sure the database cannot be changed by a query when the CommandBehavior.SchemaOnly flag is used. Fix for [f8dbab8baf]. <b>** Potentially Incompatible Change **</b></li> <li>Include the XML documentation files in the NuGet packages. Fix for [5970d5b0a6].</li> <li>Add InteropVersion, InteropSourceId, ProviderVersion, and ProviderSourceId properties to the SQLiteConnection class.</li> </ul> <p> <b>1.0.88.0 - August 7, 2013</b> </p> <ul> <li>Various fixes to managed virtual table integration infrastructure.</li> <li>Implement workaround for an incorrect PROCESSOR_ARCHITECTURE being reported. Fix for [9ac9862611].</li> |
︙ | ︙ |
Changes to www/news.wiki.
︙ | ︙ | |||
11 12 13 14 15 16 17 | <li>Check the result of sqlite3_column_name function against NULL.</li> <li>Return false for the SQLiteParameterCollection.IsSynchronized property because it is not thread-safe.</li> <li>Raise the static SQLiteConnection.Changed event when any SQLiteCommand, SQLiteDataReader, or CriticalHandle derived object instance is created. Fix for [aba4549801].</li> <li>Add SQLiteCommand.Execute, SQLiteCommand.ExecuteNonQuery, and SQLiteCommand.ExecuteScalar method overloads that take a CommandBehavior parameter.</li> <li>Revise how the extra object data is passed to the static SQLiteConnection.Changed event. <b>** Potentially Incompatible Change **</b></li> <li>Make sure the database cannot be changed by a query when the CommandBehavior.SchemaOnly flag is used. Fix for [f8dbab8baf]. <b>** Potentially Incompatible Change **</b></li> <li>Include the XML documentation files in the NuGet packages. Fix for [5970d5b0a6].</li> | | | 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | <li>Check the result of sqlite3_column_name function against NULL.</li> <li>Return false for the SQLiteParameterCollection.IsSynchronized property because it is not thread-safe.</li> <li>Raise the static SQLiteConnection.Changed event when any SQLiteCommand, SQLiteDataReader, or CriticalHandle derived object instance is created. Fix for [aba4549801].</li> <li>Add SQLiteCommand.Execute, SQLiteCommand.ExecuteNonQuery, and SQLiteCommand.ExecuteScalar method overloads that take a CommandBehavior parameter.</li> <li>Revise how the extra object data is passed to the static SQLiteConnection.Changed event. <b>** Potentially Incompatible Change **</b></li> <li>Make sure the database cannot be changed by a query when the CommandBehavior.SchemaOnly flag is used. Fix for [f8dbab8baf]. <b>** Potentially Incompatible Change **</b></li> <li>Include the XML documentation files in the NuGet packages. Fix for [5970d5b0a6].</li> <li>Add InteropVersion, InteropSourceId, ProviderVersion, and ProviderSourceId properties to the SQLiteConnection class.</li> </ul> <p> <b>1.0.88.0 - August 7, 2013</b> </p> <ul> <li>Various fixes to managed virtual table integration infrastructure.</li> <li>Implement workaround for an incorrect PROCESSOR_ARCHITECTURE being reported. Fix for [9ac9862611].</li> |
︙ | ︙ |