From e5d383158ef4a3e88af8d7856eb535c0d1ff0a6f Mon Sep 17 00:00:00 2001 From: Rodrigo Moya Date: Sat, 17 Aug 2002 00:51:53 +0000 Subject: [PATCH] 2002-08-16 Rodrigo Moya * System.Data.OleDb/TestOleDb.cs: made it work with a temporary table we create. (TestTransaction): added test for transactions. svn path=/trunk/mcs/; revision=6688 --- mcs/class/System.Data/ChangeLog | 6 +++ .../System.Data.OleDb/OleDbTransaction.cs | 18 +++++--- .../System.Data.OleDb/TestOleDb.cs | 42 ++++++++++++++++--- 3 files changed, 56 insertions(+), 10 deletions(-) diff --git a/mcs/class/System.Data/ChangeLog b/mcs/class/System.Data/ChangeLog index f7ca97baed2..87ab20fc257 100644 --- a/mcs/class/System.Data/ChangeLog +++ b/mcs/class/System.Data/ChangeLog @@ -1,3 +1,9 @@ +2002-08-16 Rodrigo Moya + + * System.Data.OleDb/TestOleDb.cs: made it work with a temporary table + we create. + (TestTransaction): added test for transactions. + 2002-08-16 Rodrigo Moya * System.Data.OleDb/libgda.cs: added new needed libgda functions. diff --git a/mcs/class/System.Data/System.Data.OleDb/OleDbTransaction.cs b/mcs/class/System.Data/System.Data.OleDb/OleDbTransaction.cs index 092241cb25f..5a61cb9c6a8 100644 --- a/mcs/class/System.Data/System.Data.OleDb/OleDbTransaction.cs +++ b/mcs/class/System.Data/System.Data.OleDb/OleDbTransaction.cs @@ -58,15 +58,21 @@ namespace System.Data.OleDb #region Properties public OleDbConnection Connection { - get { return connection; } + get { + return connection; + } } IDbConnection IDbTransaction.Connection { - get { return connection; } + get { + return connection; + } } public IsolationLevel IsolationLevel { - get { return isolationLevel; } + get { + return isolationLevel; + } } #endregion // Properties @@ -85,7 +91,8 @@ namespace System.Data.OleDb public void Commit () { - if (!libgda.gda_connection_commit_transaction (connection.GdaConnection, gdaTransaction)) + if (!libgda.gda_connection_commit_transaction (connection.GdaConnection, + gdaTransaction)) throw new InvalidOperationException (); } @@ -102,7 +109,8 @@ namespace System.Data.OleDb public void Rollback () { - if (!libgda.gda_connection_rollback_transaction (connection.GdaConnection, gdaTransaction)) + if (!libgda.gda_connection_rollback_transaction (connection.GdaConnection, + gdaTransaction)) throw new InvalidOperationException (); } diff --git a/mcs/class/System.Data/System.Data.OleDb/TestOleDb.cs b/mcs/class/System.Data/System.Data.OleDb/TestOleDb.cs index bc9ebc26b86..ed0e99c70c3 100644 --- a/mcs/class/System.Data/System.Data.OleDb/TestOleDb.cs +++ b/mcs/class/System.Data/System.Data.OleDb/TestOleDb.cs @@ -6,14 +6,34 @@ namespace System.Data.OleDb.Test public class TestOleDb { private OleDbConnection m_cnc; - + private TestOleDb () { + OleDbCommand cmd; + m_cnc = new OleDbConnection ("PostgreSQL"); m_cnc.Open (); + + Console.WriteLine ("Creating temporary table..."); + cmd = new OleDbCommand ("CREATE TABLE mono_test_table ( name varchar(25), email varchar(50))", m_cnc); + cmd.ExecuteNonQuery (); + InsertRow ("Mike Smith", "mike@smiths.com"); + InsertRow ("Julie Andrews", "julie@hollywood.com"); + InsertRow ("Michael Jordan", "michael@bulls.com"); } - void DisplayRow (IDataReader reader) + void InsertRow (string name, string email) + { + OleDbCommand cmd; + + Console.WriteLine ("Inserting record " + name + "/" + email); + cmd = new OleDbCommand ("INSERT INTO mono_test_table (name, email) VALUES ('" + + name + "', '" + email +"')", m_cnc); + cmd.ExecuteNonQuery (); + + } + + void DisplayRow (OleDbDataReader reader) { for (int i = 0; i < reader.FieldCount; i++) { Console.WriteLine (" " + reader.GetDataTypeName (i) + ": " + @@ -24,11 +44,11 @@ namespace System.Data.OleDb.Test void TestDataReader () { int i = 0; - string sql = "SELECT * FROM pg_tables"; + string sql = "SELECT * FROM mono_test_table"; - Console.WriteLine ("Executing command..."); + Console.WriteLine ("Executing SELECT command..."); OleDbCommand cmd = new OleDbCommand (sql, m_cnc); - IDataReader reader = cmd.ExecuteReader (); + OleDbDataReader reader = cmd.ExecuteReader (); Console.WriteLine (" Recordset description:"); for (i = 0; i < reader.FieldCount; i++) { @@ -44,8 +64,19 @@ namespace System.Data.OleDb.Test } } + void TestTransaction () + { + Console.WriteLine ("Starting transaction..."); + OleDbTransaction xaction = m_cnc.BeginTransaction (); + + Console.WriteLine ("Aborting transaction..."); + xaction.Rollback (); + } + void Close () { + OleDbCommand cmd = new OleDbCommand ("DROP TABLE mono_test_table", m_cnc); + cmd.ExecuteNonQuery (); m_cnc.Close (); } @@ -54,6 +85,7 @@ namespace System.Data.OleDb.Test try { TestOleDb test = new TestOleDb (); test.TestDataReader (); + test.TestTransaction (); test.Close (); } catch (Exception e) { Console.WriteLine ("An error has occured: {0}", e.ToString ()); -- 2.25.1