BeginTransaction(IsolationLevel)
このメソッドは、ローカル・トランザクションを指定された分離レベルで開始します。
宣言
// C#
public OracleTransaction BeginTransaction(IsolationLevel isolationLevel);パラメータ
-
isolationLevel新規トランザクションの分離レベル
戻り値
OracleTransactionオブジェクトは、新規トランザクションを表します。
実装
IDbConnection
例外
InvalidOperationException - トランザクションはすでに開始されています。
ArgumentException - 指定したisolationLevel値が無効です。
備考
分離レベルIsolationLevel.ReadCommittedおよびIsolationLevel.Serializableがサポートされています。
BeginTransactionメソッドは、IsolationLevel.Serializable分離レベルをサポートしていますが、System.TransactionsおよびTransactionScopeを使用する場合、シリアライズ可能なトランザクションはサポートされません。
他の分離レベルを要求すると、例外が発生します。
備考(.NETストアド・プロシージャ)
このメソッドをコンテキスト接続用の.NETストアド・プロシージャで使用すると、未サポートの例外が発生します。
例
// C#
using System;
using System.Data;
using Oracle.DataAccess.Client;
class BeginTransactionSample
{
static void Main()
{
string constr = "User Id=scott;Password=tiger;Data Source=oracle";
OracleConnection con = new OracleConnection(constr);
con.Open();
// Create an OracleCommand object using the connection object
OracleCommand cmd = con.CreateCommand();
// Start a transaction
OracleTransaction txn = con.BeginTransaction(IsolationLevel.ReadCommitted);
// Update EMP table
cmd.CommandText = "update emp set sal = sal + 100";
cmd.ExecuteNonQuery();
// Rollback transaction
txn.Rollback();
Console.WriteLine("Transaction rolledback");
// Clean up
txn.Dispose();
cmd.Dispose();
con.Dispose();
}
}