ページの先頭行へ戻る
Symfoware Server V10.0.0 アプリケーション開発ガイド(ODBCドライバ編)

C.2.7 トランザクション制御

Visual BasicのRDOとの連携でトランザクション制御を行うサンプルコードについて説明します。

トランザクション制御は、明示的に行うことができます。

Connection.BeginTransメソッド、Connection.CommitTransメソッドまたはConnection.RollbackTransメソッドで明示的に行うことができます。これらのメソッドでトランザクションを制御していない場合は、トランザクションはSQL文を実行することで開始され、そのSQL文の処理完了後すぐにコミットされて終了します。

アクセスモードと独立性水準の設定または変更は、SET TRANSACTION文で行います。

本サンプルコードは、アクセスモードをREAD WRITE、独立性水準をREAD COMMITTEDに設定します。

アプリケーションの手順

  1. コネクションを接続します。詳細は、“C.2.1 接続および切断”を参照してください。

  2. rdoConnection.ExecuteメソッドでSET TRANSACTION文を実行します。

  3. rdoConnection.BeginTransメソッドでトランザクションを開始します。

  4. データ操作が正常終了した場合、rdoConnection.CommitTransメソッドを実行します。
    データ操作が異常終了した場合、rdoConnection. RollbackTransメソッドを実行します。

  5. rdoConnection.Close()メソッドでコネクションを切断します。

  6. オブジェクトを破棄します。

エラー処理については、“C.2.9 エラー処理”を参照してください。

'オブジェクト宣言
Dim Env As rdoEnvironment
Dim Con As rdoConnection

'rdoEnvironmentオブジェクトの生成
Set Env = rdoEngine.rdoEnvironments(0)

On Error GoTo ErrorProc

'1. コネクション接続
Set Con = Env.OpenConnection("DSN01", rdDriverNoPrompt, _
                             False, "UID=USER01;PWD=PASS01;")

'2. SET TRANSACTION文を実行する
Con.Execute "SET TRANSACTION READ WRITE, ISOLATION LEVEL READ COMMITTED", rdExecDirect

'3. トランザクション開始
Con.BeginTrans


'データ操作を行う処理を記述


'4. コミット
Con.CommitTrans

'5. コネクション切断
Con.Close

'6. オブジェクトの破棄
Set Con = Nothing
Set Env = Nothing

Exit Sub

'エラー処理
ErrorProc:

'4. ロールバック
Con.RollbackTrans

'エラー処理ルーチンを記述します