Begins a transaction at the data source.
Begins a transaction at the data source.
[Visual Basic] Overloads Public Function BeginTransaction() As OdbcTransaction
[C#] public OdbcTransaction BeginTransaction();
[C++] public: OdbcTransaction* BeginTransaction();
[JScript] public function BeginTransaction() : OdbcTransaction;
Begins a transaction at the data source with the specified IsolationLevel value.
[Visual Basic] Overloads Public Function BeginTransaction(IsolationLevel) As OdbcTransaction
[C#] public OdbcTransaction BeginTransaction(IsolationLevel);
[C++] public: OdbcTransaction* BeginTransaction(IsolationLevel);
[JScript] public function BeginTransaction(IsolationLevel) : OdbcTransaction;
[Visual Basic, C#, C++] The following example creates an OdbcConnection and an OdbcTransaction. It also demonstrates how to use the BeginTransaction, Commit, and Rollback methods.
[Visual Basic, C#, C++] Note This example shows how to use one of the overloaded versions of BeginTransaction. For other examples that might be available, see the individual overload topics.
[Visual Basic] Public Sub RunOdbcTransaction(myConnString As String) Dim myConnection As New OdbcConnection(myConnString) myConnection.Open() Dim myCommand As OdbcCommand = myConnection.CreateCommand() Dim myTrans As OdbcTransaction ' Start a local transaction myTrans = myConnection.BeginTransaction(IsolationLevel.ReadCommitted) ' Assign transaction object for a pending local transaction myCommand.Transaction = myTrans Try myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (100, 'Description')" myCommand.ExecuteNonQuery() myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (101, 'Description')" myCommand.ExecuteNonQuery() myTrans.Commit() Console.WriteLine("Both records are written to database.") Catch e As Exception Try myTrans.Rollback() Catch ex As OdbcException If Not myTrans.Connection Is Nothing Then Console.WriteLine("An exception of type " & ex.GetType().ToString() & _ " was encountered while attempting to roll back the transaction.") End If End Try Console.WriteLine("An exception of type " & e.GetType().ToString() & _ "was encountered while inserting the data.") Console.WriteLine("Neither record was written to database.") Finally myConnection.Close() End Try End Sub [C#] public void RunOdbcTransaction(string myConnString) { OdbcConnection myConnection = new OdbcConnection(myConnString); myConnection.Open(); OdbcCommand myCommand = myConnection.CreateCommand(); OdbcTransaction myTrans; // Start a local transaction myTrans = myConnection.BeginTransaction(IsolationLevel.ReadCommitted); // Assign transaction object for a pending local transaction myCommand.Transaction = myTrans; try { myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (100, 'Description')"; myCommand.ExecuteNonQuery(); myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (101, 'Description')"; myCommand.ExecuteNonQuery(); myTrans.Commit(); Console.WriteLine("Both records are written to database."); } catch(Exception e) { try { myTrans.Rollback(); } catch (OdbcException ex) { if (myTrans.Connection != null) { Console.WriteLine("An exception of type " + ex.GetType() + " was encountered while attempting to roll back the transaction."); } } Console.WriteLine("An exception of type " + e.GetType() + "was encountered while inserting the data."); Console.WriteLine("Neither record was written to database."); } finally { myConnection.Close(); } } [C++] public: void RunOdbcTransaction(String* myConnString) { OdbcConnection* myConnection = new OdbcConnection(myConnString); myConnection->Open(); OdbcCommand* myCommand = myConnection->CreateCommand(); OdbcTransaction* myTrans; // Start a local transaction myTrans = myConnection->BeginTransaction(IsolationLevel::ReadCommitted); // Assign transaction Object* for a pending local transaction myCommand->Transaction = myTrans; try { myCommand->CommandText = S"Insert into Region (RegionID, RegionDescription) VALUES (100, 'Description')"; myCommand->ExecuteNonQuery(); myCommand->CommandText = S"Insert into Region (RegionID, RegionDescription) VALUES (101, 'Description')"; myCommand->ExecuteNonQuery(); myTrans->Commit(); Console::WriteLine(S"Both records are written to database."); } catch (Exception* e) { try { myTrans->Rollback(); } catch (OdbcException* ex) { if (myTrans->Connection != 0) { Console::WriteLine(S"An exception of type {0} was encountered while attempting to roll back the transaction.", ex->GetType()); } } Console::WriteLine(S"An exception of type {0} was encountered while inserting the data.", e->GetType()); Console::WriteLine(S"Neither record was written to database."); } myConnection->Close(); };
[JScript] No example is available for JScript. To view a Visual Basic, C#, or C++ example, click the Language Filter button
in the upper-left corner of the page.
OdbcConnection Class | OdbcConnection Members | System.Data.Odbc Namespace