OracleConnection.BeginTransaction Método
Definição
Inicia uma transação no banco de dados.Begins a transaction at the database.
Sobrecargas
| BeginTransaction() |
Inicia uma transação no banco de dados.Begins a transaction at the database. |
| BeginTransaction(IsolationLevel) |
Inicia uma transação no banco de dados com o valor IsolationLevel especificado.Begins a transaction at the database with the specified IsolationLevel value. |
BeginTransaction()
Inicia uma transação no banco de dados.Begins a transaction at the database.
public:
System::Data::OracleClient::OracleTransaction ^ BeginTransaction();
public System.Data.OracleClient.OracleTransaction BeginTransaction ();
member this.BeginTransaction : unit -> System.Data.OracleClient.OracleTransaction
override this.BeginTransaction : unit -> System.Data.OracleClient.OracleTransaction
Public Function BeginTransaction () As OracleTransaction
Retornos
Um objeto que representa a nova transação.An object representing the new transaction.
Exceções
Não há suporte para transações paralelas.Parallel transactions are not supported.
Exemplos
O exemplo a seguir cria um OracleConnection e um OracleTransaction .The following example creates an OracleConnection and an OracleTransaction. Ele também demonstra como usar os BeginTransaction métodos, Commit e Rollback .It also demonstrates how to use the BeginTransaction, Commit, and Rollback methods.
public void RunOracleTransaction(string connectionString)
{
using (OracleConnection connection = new OracleConnection(connectionString))
{
connection.Open();
OracleCommand command = connection.CreateCommand();
OracleTransaction transaction;
// Start a local transaction
transaction = connection.BeginTransaction(IsolationLevel.ReadCommitted);
// Assign transaction object for a pending local transaction
command.Transaction = transaction;
try
{
command.CommandText =
"INSERT INTO Dept (DeptNo, Dname, Loc) values (50, 'TECHNOLOGY', 'DENVER')";
command.ExecuteNonQuery();
command.CommandText =
"INSERT INTO Dept (DeptNo, Dname, Loc) values (60, 'ENGINEERING', 'KANSAS CITY')";
command.ExecuteNonQuery();
transaction.Commit();
Console.WriteLine("Both records are written to database.");
}
catch (Exception e)
{
transaction.Rollback();
Console.WriteLine(e.ToString());
Console.WriteLine("Neither record was written to database.");
}
}
}
Public Sub RunOracleTransaction(ByVal connectionString As String)
Using connection As New OracleConnection(connectionString)
connection.Open()
Dim command As OracleCommand = connection.CreateCommand()
Dim transaction As OracleTransaction
' Start a local transaction
transaction = connection.BeginTransaction(IsolationLevel.ReadCommitted)
' Assign transaction object for a pending local transaction
command.Transaction = transaction
Try
command.CommandText = _
"INSERT INTO Dept (DeptNo, Dname, Loc) values (50, 'TECHNOLOGY', 'DENVER')"
command.ExecuteNonQuery()
command.CommandText = _
"INSERT INTO Dept (DeptNo, Dname, Loc) values (60, 'ENGINEERING', 'KANSAS CITY')"
command.ExecuteNonQuery()
transaction.Commit()
Console.WriteLine("Both records are written to database.")
Catch e As Exception
transaction.Rollback()
Console.WriteLine(e.ToString())
Console.WriteLine("Neither record was written to database.")
End Try
End Using
End Sub
Comentários
Para confirmar ou reverter a transação, você deve usar explicitamente os Commit métodos ou Rollback .To commit or roll back the transaction, you must explicitly use the Commit or Rollback methods.
Para garantir que o .NET Framework Provedor de Dados para o modelo de gerenciamento de transações Oracle seja executado corretamente, evite usar outros modelos de gerenciamento de transações, como os fornecidos pelo banco de dados.To ensure that the .NET Framework Data Provider for Oracle transaction management model performs correctly, avoid using other transaction management models, such as those provided by the database.
Observação
Se você não especificar um nível de isolamento, o nível de isolamento padrão será usado.If you do not specify an isolation level, the default isolation level is used. Para especificar um nível de isolamento com o BeginTransaction método, use a BeginTransaction sobrecarga.To specify an isolation level with the BeginTransaction method, use the BeginTransaction overload.
Confira também
Aplica-se a
BeginTransaction(IsolationLevel)
Inicia uma transação no banco de dados com o valor IsolationLevel especificado.Begins a transaction at the database with the specified IsolationLevel value.
public:
System::Data::OracleClient::OracleTransaction ^ BeginTransaction(System::Data::IsolationLevel il);
public System.Data.OracleClient.OracleTransaction BeginTransaction (System.Data.IsolationLevel il);
member this.BeginTransaction : System.Data.IsolationLevel -> System.Data.OracleClient.OracleTransaction
override this.BeginTransaction : System.Data.IsolationLevel -> System.Data.OracleClient.OracleTransaction
Public Function BeginTransaction (il As IsolationLevel) As OracleTransaction
Parâmetros
O nível de isolamento da transação desta conexão.The transaction isolation level for this connection.
Retornos
Um objeto que representa a nova transação.An object representing the new transaction.
Exceções
Não há suporte para transações paralelas.Parallel transactions are not supported.
Exemplos
O exemplo a seguir cria um OracleConnection e um OracleTransaction .The following example creates an OracleConnection and an OracleTransaction. Ele também demonstra como usar os BeginTransaction métodos, Commit e Rollback .It also demonstrates how to use the BeginTransaction, Commit, and Rollback methods.
public void RunOracleTransaction(string connectionString)
{
using (OracleConnection connection = new OracleConnection(connectionString))
{
connection.Open();
OracleCommand command = connection.CreateCommand();
OracleTransaction transaction;
// Start a local transaction
transaction = connection.BeginTransaction(IsolationLevel.ReadCommitted);
// Assign transaction object for a pending local transaction
command.Transaction = transaction;
try
{
command.CommandText =
"INSERT INTO Dept (DeptNo, Dname, Loc) values (50, 'TECHNOLOGY', 'DENVER')";
command.ExecuteNonQuery();
command.CommandText =
"INSERT INTO Dept (DeptNo, Dname, Loc) values (60, 'ENGINEERING', 'KANSAS CITY')";
command.ExecuteNonQuery();
transaction.Commit();
Console.WriteLine("Both records are written to database.");
}
catch (Exception e)
{
transaction.Rollback();
Console.WriteLine(e.ToString());
Console.WriteLine("Neither record was written to database.");
}
}
}
Public Sub RunOracleTransaction(ByVal connectionString As String)
Using connection As New OracleConnection(connectionString)
connection.Open()
Dim command As OracleCommand = connection.CreateCommand()
Dim transaction As OracleTransaction
' Start a local transaction
transaction = connection.BeginTransaction(IsolationLevel.ReadCommitted)
' Assign transaction object for a pending local transaction
command.Transaction = transaction
Try
command.CommandText = _
"INSERT INTO Dept (DeptNo, Dname, Loc) values (50, 'TECHNOLOGY', 'DENVER')"
command.ExecuteNonQuery()
command.CommandText = _
"INSERT INTO Dept (DeptNo, Dname, Loc) values (60, 'ENGINEERING', 'KANSAS CITY')"
command.ExecuteNonQuery()
transaction.Commit()
Console.WriteLine("Both records are written to database.")
Catch e As Exception
transaction.Rollback()
Console.WriteLine(e.ToString())
Console.WriteLine("Neither record was written to database.")
End Try
End Using
End Sub
Comentários
Para confirmar ou reverter a transação, você deve usar explicitamente os Commit métodos ou Rollback .To commit or roll back the transaction, you must explicitly use the Commit or Rollback methods.
Para garantir que o .NET Framework Provedor de Dados para o modelo de gerenciamento de transações Oracle seja executado corretamente, evite usar outros modelos de gerenciamento de transações, como os fornecidos pelo banco de dados.To ensure that the .NET Framework Data Provider for Oracle transaction management model performs correctly, avoid using other transaction management models, such as those provided by the database.