15.11.3 トランザクションの実行
表exにデータ「1」を挿入する例を次に示します。
-
Visual C# .NETで記述した例
using System; using System.Data; using Hitachi.HiRDB; namespace test_C { class Sample { [STAThread] static void Main(string[] args) { // Connectionオブジェクトを作成する HiRDBConnection cn = new HiRDBConnection("dsn=pc;"); // DBに接続する cn.Open(); // Transactionオブジェクトを作成する HiRDBTransaction tran; // トランザクション開始 tran = cn.BeginTransaction(IsolationLevel.ReadCommitted); ..1 // Commandオブジェクトを作成する HiRDBCommand cm = new HiRDBCommand(); cm.Connection = cn; cm.Transaction = tran; try { // 表にデータを挿入する cm.CommandText = "insert into ex values (1)"; cm.ExecuteNonQuery(); // トランザクション成功 tran.Commit(); .........................................2 // DBから切断する cn.Close(); cn.Dispose(); } catch ( HiRDBException ex) { // トランザクション失敗 if(tran.IsCompleted != true){ tran.Rollback(); ...................................3 Console.WriteLine(ex); } catch ( System.Exception ex) { // トランザクション失敗 if(tran.IsCompleted != true){ tran.Rollback(); ...................................3 Console.WriteLine(ex); } } } }
-
Visual Basic.NETで記述した例
Imports System Imports System.Data Imports Hitachi.HiRDB Module Module1 Sub Main() Dim cn As HiRDBConnection Dim tran As HiRDBTransaction Dim cm As HiRDBCommand ' Connectionオブジェクトを作成する cn = New HiRDBConnection("dsn=pc;") ' DBに接続する cn.Open() ' トランザクション開始 tran = cn.BeginTransaction(IsolationLevel.ReadCommitted) .......1 ' Commandオブジェクトを作成する cm = New HiRDBCommand() cm.Connection = cn cm.Transaction = tran Try ' 表にデータを挿入する cm.CommandText = "insert into ex values (1)" cm.ExecuteNonQuery() ' トランザクション成功 tran.Commit() ..............................................2 ' DBから切断する cn.Close() cn.Dispose() Catch ex As HiRDBException ' トランザクション失敗 If tran.IsCompleted <> True Then tran.Rollback() ........................................3 End If Console.WriteLine(ex) Catch ex As System.Exception ' トランザクション失敗 If tran.IsCompleted <> True Then tran.Rollback() ........................................3 End If Console.WriteLine(ex) End Try End Sub End Module
- [説明]
-
-
トランザクションを開始する場合,BeginTransactionメソッドを使用します。
-
トランザクションを完了する場合,Commitメソッドを呼びます。
-
元に戻す場合は,Rollbackメソッドを呼びます。
-