Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Don't set SQLITE_OPEN_CREATE when "Read Only=true" is used in the connection string. Fix for [ac0e253dcf]. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
99e4838b7827c0149474b94d18116ec7 |
User & Date: | shaneh 2011-02-16 05:05:41.000 |
Context
2011-02-17
| ||
06:00 | Initial work on streamlining the build system. Also, partial fix for building with Visual Studio 2008 and/or the .NET Framework 2.0 [2737c06ea1] (for the primary assembly only). check-in: 6d2a2db720 user: mistachkin tags: trunk | |
2011-02-16
| ||
05:05 | Don't set SQLITE_OPEN_CREATE when "Read Only=true" is used in the connection string. Fix for [ac0e253dcf]. check-in: 99e4838b78 user: shaneh tags: trunk | |
03:45 | Removed dependency on app.config from project System.Data.SQLite - Netmodule. Fix for [9db22d7e32]. check-in: 312197770b user: shaneh tags: trunk | |
Changes
Changes to SQLite.Interop/SQLite.Interop.vcxproj.
︙ | ︙ | |||
130 131 132 133 134 135 136 | <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='StockDebug|Win32'" /> <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='StockDebug|x64'">AllRules.ruleset</CodeAnalysisRuleSet> <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='StockDebug|x64'" /> <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='StockDebug|x64'" /> <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">System.Data.SQLite</TargetName> <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">System.Data.SQLite</TargetName> <PostBuildEventUseInBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</PostBuildEventUseInBuild> | < | 130 131 132 133 134 135 136 137 138 139 140 141 142 143 | <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='StockDebug|Win32'" /> <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='StockDebug|x64'">AllRules.ruleset</CodeAnalysisRuleSet> <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='StockDebug|x64'" /> <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='StockDebug|x64'" /> <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">System.Data.SQLite</TargetName> <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">System.Data.SQLite</TargetName> <PostBuildEventUseInBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</PostBuildEventUseInBuild> <PostBuildEventUseInBuild Condition="'$(Configuration)|$(Platform)'=='StockDebug|Win32'">false</PostBuildEventUseInBuild> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <PreBuildEvent> <Command> </Command> </PreBuildEvent> |
︙ | ︙ |
Changes to SQLite.NET.sln.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | Microsoft Visual Studio Solution File, Format Version 11.00 # Visual Studio 2010 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{39A3B743-1EBD-4CC0-8E37-ACE3DD38B1C0}" ProjectSection(SolutionItems) = preProject readme.htm = readme.htm EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "test", "test\test.csproj", "{E27B1B1E-19C0-45E8-AA74-B6E1C041A130}" ProjectSection(ProjectDependencies) = postProject {10B51CE8-A838-44DE-BD82-B658F0296F80} = {10B51CE8-A838-44DE-BD82-B658F0296F80} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SQLite.Interop", "SQLite.Interop\SQLite.Interop.vcxproj", "{10B51CE8-A838-44DE-BD82-B658F0296F80}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Data.SQLite - ManagedOnly", "System.Data.SQLite\System.Data.SQLite - ManagedOnly.csproj", "{AC139952-261A-4463-B6FA-AEBC25283A66}" EndProject | > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | Microsoft Visual Studio Solution File, Format Version 11.00 # Visual Studio 2010 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{39A3B743-1EBD-4CC0-8E37-ACE3DD38B1C0}" ProjectSection(SolutionItems) = preProject readme.htm = readme.htm EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "test", "test\test.csproj", "{E27B1B1E-19C0-45E8-AA74-B6E1C041A130}" ProjectSection(ProjectDependencies) = postProject {AC139952-261A-4463-B6FA-AEBC25284A66} = {AC139952-261A-4463-B6FA-AEBC25284A66} {10B51CE8-A838-44DE-BD82-B658F0296F80} = {10B51CE8-A838-44DE-BD82-B658F0296F80} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SQLite.Interop", "SQLite.Interop\SQLite.Interop.vcxproj", "{10B51CE8-A838-44DE-BD82-B658F0296F80}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Data.SQLite - ManagedOnly", "System.Data.SQLite\System.Data.SQLite - ManagedOnly.csproj", "{AC139952-261A-4463-B6FA-AEBC25283A66}" EndProject |
︙ | ︙ |
Changes to System.Data.SQLite/SQLiteConnection.cs.
︙ | ︙ | |||
810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 | SQLiteOpenFlagsEnum flags = SQLiteOpenFlagsEnum.None; if (SQLiteConvert.ToBoolean(FindKey(opts, "FailIfMissing", Boolean.FalseString)) == false) flags |= SQLiteOpenFlagsEnum.Create; if (SQLiteConvert.ToBoolean(FindKey(opts, "Read Only", Boolean.FalseString)) == true) flags |= SQLiteOpenFlagsEnum.ReadOnly; else flags |= SQLiteOpenFlagsEnum.ReadWrite; _sql.Open(fileName, flags, maxPoolSize, usePooling); _binaryGuid = (SQLiteConvert.ToBoolean(FindKey(opts, "BinaryGUID", Boolean.TrueString)) == true); string password = FindKey(opts, "Password", null); | > > > > > > | 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 | SQLiteOpenFlagsEnum flags = SQLiteOpenFlagsEnum.None; if (SQLiteConvert.ToBoolean(FindKey(opts, "FailIfMissing", Boolean.FalseString)) == false) flags |= SQLiteOpenFlagsEnum.Create; if (SQLiteConvert.ToBoolean(FindKey(opts, "Read Only", Boolean.FalseString)) == true) { flags |= SQLiteOpenFlagsEnum.ReadOnly; // SQLite will return SQLITE_MISUSE on ReadOnly and Create flags &= ~SQLiteOpenFlagsEnum.Create; } else { flags |= SQLiteOpenFlagsEnum.ReadWrite; } _sql.Open(fileName, flags, maxPoolSize, usePooling); _binaryGuid = (SQLiteConvert.ToBoolean(FindKey(opts, "BinaryGUID", Boolean.TrueString)) == true); string password = FindKey(opts, "Password", null); |
︙ | ︙ |
Changes to test/TestCases.cs.
︙ | ︙ | |||
1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 | cmd.Transaction = trans; cmd.CommandText = "CREATE TABLE PoolTest(ID int primary key)"; cmd.ExecuteNonQuery(); } } } } /// <summary> /// Open a reader and then attempt to write to test the writer's command timeout property /// SQLite doesn't allow a write when a reader is active. /// *** NOTE AS OF 3.3.8 this test no longer blocks because SQLite now allows you to update table(s) /// while a reader is active on the same connection. Therefore the timeout test is invalid /// </summary> | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 | cmd.Transaction = trans; cmd.CommandText = "CREATE TABLE PoolTest(ID int primary key)"; cmd.ExecuteNonQuery(); } } } } /// <summary> /// Checks to make sure we can open DB read only. /// </summary> [Test] internal void ReadOnlyTest() { string RO_connectionString = _cnnstring.ConnectionString; object value; if (_cnnstring.TryGetValue("Read Only", out value) == false) { throw new Exception("Read Only not supported by connection string"); } if ((bool)value == false) { // "Read Only" not present in connection string - add it RO_connectionString += ";Read Only=true"; } maydroptable.Add("ReadOnlyTest"); using (DbConnection newcnn = ((ICloneable)_cnn).Clone() as DbConnection) { if (newcnn.State == ConnectionState.Open) { newcnn.Close(); } newcnn.ConnectionString = RO_connectionString; newcnn.Open(); newcnn.Dispose(); } } /// <summary> /// Open a reader and then attempt to write to test the writer's command timeout property /// SQLite doesn't allow a write when a reader is active. /// *** NOTE AS OF 3.3.8 this test no longer blocks because SQLite now allows you to update table(s) /// while a reader is active on the same connection. Therefore the timeout test is invalid /// </summary> |
︙ | ︙ |