Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Add ManagedVersion and ManagedSourceId properties to the SQLiteConnection class. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
7eca16cac430ea042ffd2a4e0965ccf3 |
User & Date: | mistachkin 2013-09-16 22:10:52.370 |
Context
2013-09-17
| ||
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 | |
21:31 | Improve readability of the Win32 RC file. check-in: 15399fa9b6 user: mistachkin tags: trunk | |
Changes
Changes to Doc/Extra/version.html.
︙ | ︙ | |||
50 51 52 53 54 55 56 57 58 59 60 61 62 63 | <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> </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> | > | 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 ManagedVersion and ManagedSourceId 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 Setup/build.bat.
︙ | ︙ | |||
243 244 245 246 247 248 249 250 251 252 253 254 255 256 | 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 %_VECHO% Logging = '%LOGGING%' %_VECHO% MsBuildArgs = '%MSBUILD_ARGS%' %__ECHO% MSBuild.exe "%SOLUTION%" "/target:%TARGET%" "/property:Configuration=%CONFIGURATION%" "/property:Platform=%PLATFORM%" %LOGGING% %MSBUILD_ARGS% IF ERRORLEVEL 1 ( | > > > > > > > > > > > | 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 | 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 EXIST Externals\Eagle\bin\EagleShell.exe ( %__ECHO% Externals\Eagle\bin\EagleShell.exe -file Setup\sourceTag.eagle SourceIdMode System.Data.SQLite\SQLitePatchLevel.cs IF ERRORLEVEL 1 ( ECHO Source tagging failed. GOTO errors ) ) ELSE ( ECHO WARNING: Source tagging skipped, Eagle binaries are not available. ) %_VECHO% Logging = '%LOGGING%' %_VECHO% MsBuildArgs = '%MSBUILD_ARGS%' %__ECHO% MSBuild.exe "%SOLUTION%" "/target:%TARGET%" "/property:Configuration=%CONFIGURATION%" "/property:Platform=%PLATFORM%" %LOGGING% %MSBUILD_ARGS% IF ERRORLEVEL 1 ( |
︙ | ︙ |
Added Setup/sourceTag.eagle.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 | ############################################################################### # # sourceTag.eagle -- Source Version Tag Tool # # Written by Joe Mistachkin. # Released to the public domain, use at your own risk! # ############################################################################### package require Eagle proc usage { error } { if {[string length $error] > 0} then {puts stdout $error} puts stdout "usage:\ [file tail [info nameofexecutable]]\ [file tail [info script]] <SourceIdMode> <fileName>" # # NOTE: Indicate to the caller, if any, that we have failed. # exit 1 } set modes [list \"SourceIdMode\"] set argc [llength $argv] if {$argc == 2} then { # # NOTE: Are we updating the "PatchLevel.cs" file? # set mode [lindex $argv 0] if {[string length $mode] > 0} then { # # NOTE: Get the file name to read/update/write. # set fileName [lindex $argv 1] # # NOTE: Make sure the file name provided is not obviously # invalid. # if {[string length $fileName] > 0} then { # # NOTE: Read all the data out of the text file. # set data [readFile $fileName] # # NOTE: Normalize to Unix line-endings. # set data [string map [list \r\n \n] $data]; # Unix. # # NOTE: Figure out what mode we are in. # switch -exact -nocase -- $mode { SourceIdMode { # # NOTE: Query the source identifier from Fossil, if available. # If we are not within an active checkout, this will fail. # set pattern {^checkout:\s+([^\s]+)\s+(.*)\s+$} if {[catch {set exec [exec -success Success -directory \ [file dirname $fileName] -- fossil info]}] || \ [regexp -line -- $pattern $exec dummy id timeStamp] == 0} then { # # NOTE: We could not query the source identifier(s); therefore, # use obviously invalid ones. We would also be able to # use null values here except that these values end up in # native C header files as well (i.e. not just managed # assembly attribute values). # set id 0000000000000000000000000000000000000000 set timeStamp "0000-00-00 00:00:00 UTC" } # # 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 {SOURCE_ID\t\t".*?"} set pattern4 {SOURCE_TIMESTAMP\t".*?"} # # NOTE: Build the final replacement specification string. # set subSpec1 [appendArgs AssemblySourceId(\" $id \" )] set subSpec2 [appendArgs AssemblySourceTimeStamp(\" $timeStamp \" )] set subSpec3 [appendArgs SOURCE_ID\t\t \" $id \"] set subSpec4 [appendArgs SOURCE_TIMESTAMP\t \" $timeStamp \"] # # NOTE: Perform the replacements in the original data # (first match only). # set count 0 incr count [regsub -nocase -- $pattern1 $data $subSpec1 data] incr count [regsub -nocase -- $pattern2 $data $subSpec2 data] incr count [regsub -nocase -- $pattern3 $data $subSpec3 data] incr count [regsub -nocase -- $pattern4 $data $subSpec4 data] # # NOTE: If we actually replaced anything, we need to write back # to the original file; otherwise, leave it alone. # if {$count > 0} then { # # NOTE: Show how we tagged it. # puts stdout [appendArgs "tagged \"" $fileName "\" " $mode \ " " $id " " $timeStamp] # # NOTE: Re-write the original file with the modified data. # writeFile $fileName [string map [list \n \r\n] $data]; # DOS. } else { # # NOTE: We could not replace the string. This is considered # an overall failure. # usage [appendArgs "pattern \"" $pattern "\" not found in \"" \ $fileName \"] } } default { usage [appendArgs "unknown mode, must be " [join $modes " "]] } } } else { usage "invalid file name" } } else { usage [appendArgs "invalid mode, must be " [join $modes " "]] } } else { usage "" } |
Changes to Setup/verify.lst.
︙ | ︙ | |||
125 126 127 128 129 130 131 132 133 134 135 136 137 138 | Setup/set_x64_2008.bat Setup/set_x64_2010.bat Setup/set_x64_2012.bat Setup/set_x86_2005.bat Setup/set_x86_2008.bat Setup/set_x86_2010.bat Setup/set_x86_2012.bat Setup/SQLite.iss Setup/test_all.bat Setup/test_ce.bat Setup/updateFileInfo.tcl Setup/verify.eagle Setup/verify.lst Setup/vsSp.bat | > | 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 | Setup/set_x64_2008.bat Setup/set_x64_2010.bat Setup/set_x64_2012.bat Setup/set_x86_2005.bat Setup/set_x86_2008.bat Setup/set_x86_2010.bat Setup/set_x86_2012.bat Setup/sourceTag.eagle Setup/SQLite.iss Setup/test_all.bat Setup/test_ce.bat Setup/updateFileInfo.tcl Setup/verify.eagle Setup/verify.lst Setup/vsSp.bat |
︙ | ︙ | |||
257 258 259 260 261 262 263 264 265 266 267 268 269 270 | SQLite.NET.Settings.targets.netFx35 SQLite.NET.targets SQLite.nuspec SQLite.x64.nuspec SQLite.x86.nuspec System.Data.SQLite/ System.Data.SQLite/AssemblyInfo.cs System.Data.SQLite/DataTypes.xml System.Data.SQLite/LINQ/ System.Data.SQLite/LINQ/SQLiteConnection_Linq.cs System.Data.SQLite/LINQ/SQLiteFactory_Linq.cs System.Data.SQLite/MetaDataCollections.xml System.Data.SQLite/SQLite3.cs System.Data.SQLite/SQLite3_UTF16.cs | > > | 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 | SQLite.NET.Settings.targets.netFx35 SQLite.NET.targets SQLite.nuspec SQLite.x64.nuspec SQLite.x86.nuspec System.Data.SQLite/ System.Data.SQLite/AssemblyInfo.cs System.Data.SQLite/AssemblySourceIdAttribute.cs System.Data.SQLite/AssemblySourceTimeStampAttribute.cs System.Data.SQLite/DataTypes.xml System.Data.SQLite/LINQ/ System.Data.SQLite/LINQ/SQLiteConnection_Linq.cs System.Data.SQLite/LINQ/SQLiteFactory_Linq.cs System.Data.SQLite/MetaDataCollections.xml System.Data.SQLite/SQLite3.cs System.Data.SQLite/SQLite3_UTF16.cs |
︙ | ︙ | |||
291 292 293 294 295 296 297 298 299 300 301 302 303 304 | System.Data.SQLite/SQLiteLog.cs System.Data.SQLite/SQLiteMetaDataCollectionNames.cs System.Data.SQLite/SQLiteModule.cs System.Data.SQLite/SQLiteModuleEnumerable.cs System.Data.SQLite/SQLiteModuleNoop.cs System.Data.SQLite/SQLiteParameter.cs System.Data.SQLite/SQLiteParameterCollection.cs System.Data.SQLite/SQLiteStatement.cs System.Data.SQLite/SQLiteTransaction.cs System.Data.SQLite/SR.Designer.cs System.Data.SQLite/SR.resx System.Data.SQLite/System.Data.SQLite.2005.csproj System.Data.SQLite/System.Data.SQLite.2008.csproj System.Data.SQLite/System.Data.SQLite.2010.csproj | > | 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 | System.Data.SQLite/SQLiteLog.cs System.Data.SQLite/SQLiteMetaDataCollectionNames.cs System.Data.SQLite/SQLiteModule.cs System.Data.SQLite/SQLiteModuleEnumerable.cs System.Data.SQLite/SQLiteModuleNoop.cs System.Data.SQLite/SQLiteParameter.cs System.Data.SQLite/SQLiteParameterCollection.cs System.Data.SQLite/SQLitePatchLevel.cs System.Data.SQLite/SQLiteStatement.cs System.Data.SQLite/SQLiteTransaction.cs System.Data.SQLite/SR.Designer.cs System.Data.SQLite/SR.resx System.Data.SQLite/System.Data.SQLite.2005.csproj System.Data.SQLite/System.Data.SQLite.2008.csproj System.Data.SQLite/System.Data.SQLite.2010.csproj |
︙ | ︙ | |||
420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 | Tests/tkt-00f86f9739.eagle Tests/tkt-0d5b1ef362.eagle Tests/tkt-17045010df.eagle Tests/tkt-1c456ae75f.eagle Tests/tkt-201128cc88.eagle Tests/tkt-2c630bffa7.eagle Tests/tkt-2ce0870fad.eagle Tests/tkt-343d392b51.eagle Tests/tkt-3567020edf.eagle Tests/tkt-393d954be0.eagle Tests/tkt-3aa50d8413.eagle Tests/tkt-448d663d11.eagle Tests/tkt-47f4bac575.eagle Tests/tkt-48a6b8e4ca.eagle Tests/tkt-4a791e70ab.eagle Tests/tkt-544dba0a2f.eagle Tests/tkt-59edc1018b.eagle Tests/tkt-6434e23a0f.eagle Tests/tkt-6c6ecccc5f.eagle Tests/tkt-72905c9a77.eagle Tests/tkt-7e3fa93744.eagle Tests/tkt-84718e79fa.eagle Tests/tkt-8554170e09.eagle Tests/tkt-8b7d179c3c.eagle Tests/tkt-8c3bee31c8.eagle Tests/tkt-996d13cd87.eagle Tests/tkt-ac47dd230a.eagle Tests/tkt-ae5267b863.eagle Tests/tkt-b4a7ddc83f.eagle Tests/tkt-bb4b04d457.eagle Tests/tkt-c010fa6584.eagle Tests/tkt-ccfa69fc32.eagle Tests/tkt-e06c4caff3.eagle Tests/tkt-e1b2e0f769.eagle Tests/tkt-e30b820248.eagle Tests/tkt-e47b3d8346.eagle Tests/tkt-f2c47a01eb.eagle Tests/tkt-fe50b8c2e8.eagle Tests/Uninstaller_Test_Vs2005.log Tests/Uninstaller_Test_Vs2008.log Tests/Uninstaller_Test_Vs2010.log Tests/Uninstaller_Test_Vs2012.log Tests/version.eagle Tests/vtab.eagle | > > > | 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 | Tests/tkt-00f86f9739.eagle Tests/tkt-0d5b1ef362.eagle Tests/tkt-17045010df.eagle Tests/tkt-1c456ae75f.eagle Tests/tkt-201128cc88.eagle Tests/tkt-2c630bffa7.eagle Tests/tkt-2ce0870fad.eagle Tests/tkt-3113734605.eagle Tests/tkt-343d392b51.eagle Tests/tkt-3567020edf.eagle Tests/tkt-393d954be0.eagle Tests/tkt-3aa50d8413.eagle Tests/tkt-448d663d11.eagle Tests/tkt-47f4bac575.eagle Tests/tkt-48a6b8e4ca.eagle Tests/tkt-4a791e70ab.eagle Tests/tkt-544dba0a2f.eagle Tests/tkt-59edc1018b.eagle Tests/tkt-6434e23a0f.eagle Tests/tkt-6c6ecccc5f.eagle Tests/tkt-72905c9a77.eagle Tests/tkt-7e3fa93744.eagle Tests/tkt-84718e79fa.eagle Tests/tkt-8554170e09.eagle Tests/tkt-8b7d179c3c.eagle Tests/tkt-8c3bee31c8.eagle Tests/tkt-996d13cd87.eagle Tests/tkt-aba4549801.eagle Tests/tkt-ac47dd230a.eagle Tests/tkt-ae5267b863.eagle Tests/tkt-b4a7ddc83f.eagle Tests/tkt-bb4b04d457.eagle Tests/tkt-c010fa6584.eagle Tests/tkt-ccfa69fc32.eagle Tests/tkt-e06c4caff3.eagle Tests/tkt-e1b2e0f769.eagle Tests/tkt-e30b820248.eagle Tests/tkt-e47b3d8346.eagle Tests/tkt-f2c47a01eb.eagle Tests/tkt-f8dbab8baf.eagle Tests/tkt-fe50b8c2e8.eagle Tests/Uninstaller_Test_Vs2005.log Tests/Uninstaller_Test_Vs2008.log Tests/Uninstaller_Test_Vs2010.log Tests/Uninstaller_Test_Vs2012.log Tests/version.eagle Tests/vtab.eagle |
︙ | ︙ |
Added System.Data.SQLite/AssemblySourceIdAttribute.cs.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 | /******************************************************** * ADO.NET 2.0 Data Provider for SQLite Version 3.X * Written by Joe Mistachkin (joe@mistachkin.com) * * Released to the public domain, use at your own risk! ********************************************************/ using System; namespace System.Data.SQLite { [AttributeUsage(AttributeTargets.Assembly, Inherited = false)] public sealed class AssemblySourceIdAttribute : Attribute { public AssemblySourceIdAttribute(string value) { sourceId = value; } /////////////////////////////////////////////////////////////////////// private string sourceId; public string SourceId { get { return sourceId; } } } } |
Added System.Data.SQLite/AssemblySourceTimeStampAttribute.cs.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 | /******************************************************** * ADO.NET 2.0 Data Provider for SQLite Version 3.X * Written by Joe Mistachkin (joe@mistachkin.com) * * Released to the public domain, use at your own risk! ********************************************************/ using System; namespace System.Data.SQLite { [AttributeUsage(AttributeTargets.Assembly, Inherited = false)] public sealed class AssemblySourceTimeStampAttribute : Attribute { public AssemblySourceTimeStampAttribute(string value) { sourceTimeStamp = value; } /////////////////////////////////////////////////////////////////////// private string sourceTimeStamp; public string SourceTimeStamp { get { return sourceTimeStamp; } } } } |
Changes to System.Data.SQLite/SQLiteConnection.cs.
︙ | ︙ | |||
10 11 12 13 14 15 16 17 18 19 20 21 22 23 | using System; using System.Data; using System.Data.Common; using System.Diagnostics; using System.Collections.Generic; using System.Globalization; using System.ComponentModel; using System.Runtime.InteropServices; using System.IO; using System.Text; ///////////////////////////////////////////////////////////////////////////////////////////////// /// <summary> | > | 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | using System; using System.Data; using System.Data.Common; using System.Diagnostics; using System.Collections.Generic; using System.Globalization; using System.ComponentModel; using System.Reflection; using System.Runtime.InteropServices; using System.IO; using System.Text; ///////////////////////////////////////////////////////////////////////////////////////////////// /// <summary> |
︙ | ︙ | |||
372 373 374 375 376 377 378 379 380 381 382 | private const string _masterdb = "sqlite_master"; private const string _tempmasterdb = "sqlite_temp_master"; #endregion /////////////////////////////////////////////////////////////////////////////////////////////// #region Private Static Data /// <summary> /// Object used to synchronize access to the static instance data /// for this class. /// </summary> | > > > > > | | 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 | private const string _masterdb = "sqlite_master"; private const string _tempmasterdb = "sqlite_temp_master"; #endregion /////////////////////////////////////////////////////////////////////////////////////////////// #region Private Static Data /// <summary> /// The managed assembly containing this type. /// </summary> private static readonly Assembly _assembly = typeof(SQLiteConnection).Assembly; /// <summary> /// Object used to synchronize access to the static instance data /// for this class. /// </summary> private static readonly object _syncRoot = new object(); /// <summary> /// Static variable to store the connection event handlers to call. /// </summary> private static event SQLiteConnectionEventHandler _handlers; #if SQLITE_STANDARD && !PLATFORM_COMPACTFRAMEWORK |
︙ | ︙ | |||
2467 2468 2469 2470 2471 2472 2473 2474 2475 2476 2477 2478 2479 2480 | /// SQLITE_SOURCE_ID C preprocessor macro used when compiling the /// SQLite core library. /// </summary> public static string SQLiteSourceId { get { return SQLite3.SQLiteSourceId; } } /// <summary> /// Returns the state of the connection. /// </summary> #if !PLATFORM_COMPACTFRAMEWORK [Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] #endif | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2548 2549 2550 2551 2552 2553 | /// 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 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 ManagedVersion { 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 ManagedSourceId { get { if (_assembly == null) return null; string sourceId = null; if (_assembly.IsDefined(typeof(AssemblySourceIdAttribute), false)) { AssemblySourceIdAttribute attribute = (AssemblySourceIdAttribute)_assembly.GetCustomAttributes( typeof(AssemblySourceIdAttribute), false)[0]; sourceId = attribute.SourceId; } string sourceTimeStamp = null; if (_assembly.IsDefined(typeof(AssemblySourceTimeStampAttribute), false)) { AssemblySourceTimeStampAttribute attribute = (AssemblySourceTimeStampAttribute)_assembly.GetCustomAttributes( typeof(AssemblySourceTimeStampAttribute), false)[0]; sourceTimeStamp = attribute.SourceTimeStamp; } if ((sourceId != null) || (sourceTimeStamp != null)) { if (sourceId == null) sourceId = "0000000000000000000000000000000000000000"; if (sourceTimeStamp == null) sourceTimeStamp = "0000-00-00 00:00:00 UTC"; return String.Format("{0} {1}", sourceId, sourceTimeStamp); } else { return null; } } } /// <summary> /// Returns the state of the connection. /// </summary> #if !PLATFORM_COMPACTFRAMEWORK [Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] #endif |
︙ | ︙ |
Added System.Data.SQLite/SQLitePatchLevel.cs.
> > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | /******************************************************** * ADO.NET 2.0 Data Provider for SQLite Version 3.X * Written by Joe Mistachkin (joe@mistachkin.com) * * Released to the public domain, use at your own risk! ********************************************************/ using System.Data.SQLite; /////////////////////////////////////////////////////////////////////////////// [assembly: AssemblySourceId(null)] /////////////////////////////////////////////////////////////////////////////// [assembly: AssemblySourceTimeStamp(null)] |
Changes to System.Data.SQLite/System.Data.SQLite.Files.targets.
︙ | ︙ | |||
11 12 13 14 15 16 17 18 19 20 21 22 23 24 | ****************************************************************************** ** Core Files (Common) ** ****************************************************************************** --> <ItemGroup> <Compile Include="AssemblyInfo.cs" /> <Compile Include="SQLite3.cs" /> <Compile Include="SQLite3_UTF16.cs" /> <Compile Include="SQLiteBackup.cs" /> <Compile Include="SQLiteBase.cs" /> <Compile Include="SQLiteCommand.cs"> <SubType>Component</SubType> </Compile> | > > | 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | ****************************************************************************** ** Core Files (Common) ** ****************************************************************************** --> <ItemGroup> <Compile Include="AssemblyInfo.cs" /> <Compile Include="AssemblySourceIdAttribute.cs" /> <Compile Include="AssemblySourceTimeStampAttribute.cs" /> <Compile Include="SQLite3.cs" /> <Compile Include="SQLite3_UTF16.cs" /> <Compile Include="SQLiteBackup.cs" /> <Compile Include="SQLiteBase.cs" /> <Compile Include="SQLiteCommand.cs"> <SubType>Component</SubType> </Compile> |
︙ | ︙ | |||
41 42 43 44 45 46 47 48 49 50 51 52 53 54 | <Compile Include="SQLiteFunction.cs" /> <Compile Include="SQLiteFunctionAttribute.cs" /> <Compile Include="SQLiteKeyReader.cs" /> <Compile Include="SQLiteLog.cs" /> <Compile Include="SQLiteMetaDataCollectionNames.cs" /> <Compile Include="SQLiteParameter.cs" /> <Compile Include="SQLiteParameterCollection.cs" /> <Compile Include="SQLiteStatement.cs" /> <Compile Include="SQLiteTransaction.cs" /> <Compile Include="SR.Designer.cs"> <DependentUpon>SR.resx</DependentUpon> <AutoGen>True</AutoGen> <DesignTime>True</DesignTime> </Compile> | > | 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | <Compile Include="SQLiteFunction.cs" /> <Compile Include="SQLiteFunctionAttribute.cs" /> <Compile Include="SQLiteKeyReader.cs" /> <Compile Include="SQLiteLog.cs" /> <Compile Include="SQLiteMetaDataCollectionNames.cs" /> <Compile Include="SQLiteParameter.cs" /> <Compile Include="SQLiteParameterCollection.cs" /> <Compile Include="SQLitePatchLevel.cs" /> <Compile Include="SQLiteStatement.cs" /> <Compile Include="SQLiteTransaction.cs" /> <Compile Include="SR.Designer.cs"> <DependentUpon>SR.resx</DependentUpon> <AutoGen>True</AutoGen> <DesignTime>True</DesignTime> </Compile> |
︙ | ︙ |
Changes to Tests/common.eagle.
︙ | ︙ | |||
1931 1932 1933 1934 1935 1936 1937 | tputs $::test_channel \ "---- define constants for \"System.Data.SQLite\"... " if {[catch {object invoke -flags +NonPublic \ System.Data.SQLite.SQLite3 DefineConstants} \ defineConstants] == 0} then { tputs $::test_channel [appendArgs [formatList [lsort \ | | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 | tputs $::test_channel \ "---- define constants for \"System.Data.SQLite\"... " if {[catch {object invoke -flags +NonPublic \ System.Data.SQLite.SQLite3 DefineConstants} \ defineConstants] == 0} then { tputs $::test_channel [appendArgs [formatList [lsort \ $defineConstants] <none>] \n] } else { tputs $::test_channel unknown\n } } catch { tputs $::test_channel \ "---- source version of \"System.Data.SQLite\"... " if {[catch {object invoke -flags +NonPublic \ System.Data.SQLite.SQLiteConnection ManagedVersion} \ sourceVersion] == 0} then { if {[string length $sourceVersion] == 0} then { set sourceVersion <none> } tputs $::test_channel [appendArgs $sourceVersion \n] } else { tputs $::test_channel unknown\n } } catch { tputs $::test_channel \ "---- source checkout of \"System.Data.SQLite\"... " if {[catch {object invoke -flags +NonPublic \ System.Data.SQLite.SQLiteConnection ManagedSourceId} \ sourceId] == 0} then { if {[string length $sourceId] == 0} then { set sourceId <none> } tputs $::test_channel [appendArgs $sourceId \n] } else { tputs $::test_channel unknown\n } } # # NOTE: Check the available builds of SQLite and System.Data.SQLite. |
︙ | ︙ | |||
2039 2040 2041 2042 2043 2044 2045 | # reportSQLiteResources $::test_channel # # NOTE: Show the active test constraints. # tputs $::test_channel [appendArgs "---- constraints: " \ | | | 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 | # reportSQLiteResources $::test_channel # # NOTE: Show the active test constraints. # tputs $::test_channel [appendArgs "---- constraints: " \ [formatList [lsort [getConstraints]] <none>] \n] # # NOTE: Save the test constraints for use by threads created in this # application domain. This is necessary because all the Eagle # "test context" information is per-thread. # if {![info exists ::test_constraints]} then { |
︙ | ︙ |
Changes to exclude_src.txt.
︙ | ︙ | |||
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | bin/* Doc/Output/* Externals/Eagle/bin/Eagle.dll Externals/Eagle/bin/EagleShell.exe Externals/Eagle/bin/SQLite.Interop.* Externals/Eagle/bin/sqlite3.* Externals/Eagle/bin/System.* Externals/Eagle/lib/Eagle1.0/embed.eagle Externals/Eagle/lib/Eagle1.0/init.eagle Externals/Eagle/lib/Eagle1.0/pkgIndex.eagle Externals/Eagle/lib/Eagle1.0/pkgIndex.tcl Externals/Eagle/lib/Eagle1.0/safe.eagle Externals/Eagle/lib/Eagle1.0/shell.eagle Externals/Eagle/lib/Eagle1.0/test.eagle Externals/Eagle/lib/Test1.0/constraints.eagle Externals/Eagle/lib/Test1.0/epilogue.eagle Externals/Eagle/lib/Test1.0/pkgIndex.eagle Externals/Eagle/lib/Test1.0/pkgIndex.tcl Externals/Eagle/lib/Test1.0/prologue.eagle Externals/HtmlHelp/* Externals/MSVCPP/* | > > > | 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | bin/* Doc/Output/* Externals/Eagle/bin/Eagle.dll Externals/Eagle/bin/EagleShell.exe Externals/Eagle/bin/SQLite.Interop.* Externals/Eagle/bin/sqlite3.* Externals/Eagle/bin/System.* Externals/Eagle/bin/x64/* Externals/Eagle/bin/x86/* Externals/Eagle/lib/Eagle1.0/embed.eagle Externals/Eagle/lib/Eagle1.0/init.eagle Externals/Eagle/lib/Eagle1.0/pkgIndex.eagle Externals/Eagle/lib/Eagle1.0/pkgIndex.tcl Externals/Eagle/lib/Eagle1.0/safe.eagle Externals/Eagle/lib/Eagle1.0/shell.eagle Externals/Eagle/lib/Eagle1.0/test.eagle Externals/Eagle/lib/Eagle1.0/word.tcl Externals/Eagle/lib/Test1.0/constraints.eagle Externals/Eagle/lib/Test1.0/epilogue.eagle Externals/Eagle/lib/Test1.0/pkgIndex.eagle Externals/Eagle/lib/Test1.0/pkgIndex.tcl Externals/Eagle/lib/Test1.0/prologue.eagle Externals/HtmlHelp/* Externals/MSVCPP/* |
︙ | ︙ |
Changes to readme.htm.
︙ | ︙ | |||
195 196 197 198 199 200 201 202 203 204 205 206 207 208 | <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> </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> | > | 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 ManagedVersion and ManagedSourceId 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 18 19 20 21 22 23 24 | <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> </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> | > | 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 ManagedVersion and ManagedSourceId 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> |
︙ | ︙ |