Visual BasicのRDOとの連携でトランザクション制御を行うサンプルコードについて説明します。
トランザクション制御は、明示的に行うことができます。
Connection.BeginTransメソッド、Connection.CommitTransメソッドまたはConnection.RollbackTransメソッドで明示的に行うことができます。これらのメソッドでトランザクションを制御していない場合は、トランザクションはSQL文を実行することで開始され、そのSQL文の処理完了後すぐにコミットされて終了します。
アクセスモードと独立性水準の設定または変更は、SET TRANSACTION文で行います。
本サンプルコードは、アクセスモードをREAD WRITE、独立性水準をREAD COMMITTEDに設定します。
アプリケーションの手順
コネクションを接続します。詳細は、“C.2.1 接続および切断”を参照してください。
rdoConnection.ExecuteメソッドでSET TRANSACTION文を実行します。
rdoConnection.BeginTransメソッドでトランザクションを開始します。
データ操作が正常終了した場合、rdoConnection.CommitTransメソッドを実行します。
データ操作が異常終了した場合、rdoConnection. RollbackTransメソッドを実行します。
rdoConnection.Close()メソッドでコネクションを切断します。
オブジェクトを破棄します。
エラー処理については、“C.2.11 エラー処理”を参照してください。
'オブジェクト宣言 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 'エラー処理ルーチンを記述します