Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Transaction enlistment and nested transaction test added |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | sourceforge |
Files: | files | file ages | folders |
SHA1: |
a15dd262179a2932425c4104b2c10f32 |
User & Date: | rmsimpson 2006-01-27 05:55:47.000 |
Context
2006-01-27
| ||
06:13 | Fixed a bug in aggregate functions with empty resultsets check-in: ab8b2729bb user: rmsimpson tags: sourceforge | |
05:55 | Transaction enlistment and nested transaction test added check-in: a15dd26217 user: rmsimpson tags: sourceforge | |
05:55 | First shot at nested transactions and transaction enlistment check-in: 9e2d3ca71a user: rmsimpson tags: sourceforge | |
Changes
Changes to test/TestCases.cs.
1 2 3 4 5 6 7 8 9 10 11 | using System; using System.Data.Common; using System.Data; using System.Data.SQLite; namespace test { /// <summary> /// Scalar user-defined function. In this example, the same class is declared twice with /// different function names to demonstrate how to use alias names for user-defined functions. | > | 1 2 3 4 5 6 7 8 9 10 11 12 | using System; using System.Data.Common; using System.Data; using System.Data.SQLite; using System.Transactions; namespace test { /// <summary> /// Scalar user-defined function. In this example, the same class is declared twice with /// different function names to demonstrate how to use alias names for user-defined functions. |
︙ | ︙ | |||
66 67 68 69 70 71 72 73 74 75 76 77 78 79 | { internal static void Run(DbProviderFactory fact, DbConnection cnn) { Console.WriteLine("\r\nBeginning Test on " + cnn.GetType().ToString()); try { CreateTable(cnn); Console.WriteLine("SUCCESS - CreateTable"); } catch (Exception) { Console.WriteLine("FAIL - CreateTable"); } try { InsertTable(cnn); Console.WriteLine("SUCCESS - InsertTable"); } catch (Exception) { Console.WriteLine("FAIL - InsertTable"); } try { VerifyInsert(cnn); Console.WriteLine("SUCCESS - VerifyInsert"); } catch (Exception) { Console.WriteLine("FAIL - VerifyInsert"); } try { CoersionTest(cnn); Console.WriteLine("FAIL - CoersionTest"); } | > > > | 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 | { internal static void Run(DbProviderFactory fact, DbConnection cnn) { Console.WriteLine("\r\nBeginning Test on " + cnn.GetType().ToString()); try { CreateTable(cnn); Console.WriteLine("SUCCESS - CreateTable"); } catch (Exception) { Console.WriteLine("FAIL - CreateTable"); } try { TransactionTest(cnn); Console.WriteLine("SUCCESS - Transaction Enlistment"); } catch (Exception) { Console.WriteLine("FAIL - Transaction Enlistment"); } try { InsertTable(cnn); Console.WriteLine("SUCCESS - InsertTable"); } catch (Exception) { Console.WriteLine("FAIL - InsertTable"); } try { VerifyInsert(cnn); Console.WriteLine("SUCCESS - VerifyInsert"); } catch (Exception) { Console.WriteLine("FAIL - VerifyInsert"); } try { CoersionTest(cnn); Console.WriteLine("FAIL - CoersionTest"); } |
︙ | ︙ | |||
119 120 121 122 123 124 125 126 127 128 129 130 131 132 | catch (Exception) { Console.WriteLine("FAIL - UserCollation"); } try { DropTable(cnn); Console.WriteLine("SUCCESS - DropTable"); } catch (Exception) { Console.WriteLine("FAIL - DropTable"); } Console.WriteLine("\r\nTests Finished."); } internal static void CreateTable(DbConnection cnn) { using (DbCommand cmd = cnn.CreateCommand()) { cmd.CommandText = "CREATE TABLE TestCase (ID integer primary key autoincrement, Field1 Integer, Field2 Float, Field3 VARCHAR(50), Field4 CHAR(10), Field5 DateTime, Field6 Image)"; //cmd.CommandText = "CREATE TABLE TestCase (ID bigint primary key identity, Field1 Integer, Field2 Float, Field3 VARCHAR(50), Field4 CHAR(10), Field5 DateTime, Field6 Image)"; | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 | catch (Exception) { Console.WriteLine("FAIL - UserCollation"); } try { DropTable(cnn); Console.WriteLine("SUCCESS - DropTable"); } catch (Exception) { Console.WriteLine("FAIL - DropTable"); } Console.WriteLine("\r\nTests Finished."); } internal static void TransactionTest(DbConnection cnn) { using (TransactionScope scope = new TransactionScope()) { cnn.EnlistTransaction(Transaction.Current); using (DbCommand cmd = cnn.CreateCommand()) { cmd.CommandText = "CREATE TABLE VolatileTable (ID INTEGER PRIMARY KEY, MyValue VARCHAR(50))"; cmd.ExecuteNonQuery(); using (DbCommand cmd2 = cnn.CreateCommand()) { using (cmd2.Transaction = cnn.BeginTransaction()) { cmd2.CommandText = "INSERT INTO VolatileTable (ID, MyValue) VALUES(1, 'Hello')"; cmd2.ExecuteNonQuery(); cmd2.Transaction.Commit(); } } } } using (DbCommand cmd = cnn.CreateCommand()) { cmd.CommandText = "SELECT COUNT(*) FROM VolatileTable"; try { object o = cmd.ExecuteScalar(); throw new InvalidOperationException("Transaction failed! The table exists!"); } catch(SQLiteException e) { return; // Succeeded, the table should not have existed } } } internal static void CreateTable(DbConnection cnn) { using (DbCommand cmd = cnn.CreateCommand()) { cmd.CommandText = "CREATE TABLE TestCase (ID integer primary key autoincrement, Field1 Integer, Field2 Float, Field3 VARCHAR(50), Field4 CHAR(10), Field5 DateTime, Field6 Image)"; //cmd.CommandText = "CREATE TABLE TestCase (ID bigint primary key identity, Field1 Integer, Field2 Float, Field3 VARCHAR(50), Field4 CHAR(10), Field5 DateTime, Field6 Image)"; |
︙ | ︙ |
Changes to test/test.csproj.
︙ | ︙ | |||
44 45 46 47 48 49 50 51 52 53 54 55 56 57 | <ItemGroup> <Reference Include="System" /> <Reference Include="System.Data" /> <Reference Include="System.Data.SQLite, Version=1.0.23.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=x86"> <SpecificVersion>False</SpecificVersion> <Private>False</Private> </Reference> <Reference Include="System.Xml" /> </ItemGroup> <ItemGroup> <None Include="app.config" /> <Compile Include="Program.cs" /> <Compile Include="AssemblyInfo.cs" /> <Compile Include="TestCases.cs" /> | > | 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | <ItemGroup> <Reference Include="System" /> <Reference Include="System.Data" /> <Reference Include="System.Data.SQLite, Version=1.0.23.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=x86"> <SpecificVersion>False</SpecificVersion> <Private>False</Private> </Reference> <Reference Include="System.Transactions" /> <Reference Include="System.Xml" /> </ItemGroup> <ItemGroup> <None Include="app.config" /> <Compile Include="Program.cs" /> <Compile Include="AssemblyInfo.cs" /> <Compile Include="TestCases.cs" /> |
︙ | ︙ |