5.12 DBTransactionクラスの詳細

トランザクションを管理するクラスです。

トランザクションを制御する,BeginTrans,Commit,Rollbackなどのメソッドや,トランザクションの処理中かどうかを確認するメソッドなどを提供します。

更新処理をするアプリケーションの作成では,できるだけデータベースアクセスにトランザクションを使用してください。もし,トランザクション管理をしなかった場合,コミットは次のように実行されます。

データベースを更新するSQL文を一文実行するごとにコミットされます。これを,自動コミットといいます。自動コミットをするかしないかは,SetAutoCommitメソッドで指定します。

自動コミットは,SELECT文以外のSQLを実行した直後にコミットします。

具体的には,DBConnectionクラスのExecuteDirectメソッド,DBStatementクラスのExecuteメソッド,DBPreparedStatementクラスのExecuteUpdateメソッドでSQL文を実行した後,又はDBResultSetクラスのUpdate,Deleteメソッドを実行した後にコミットします。

ただし,自動コミットを設定すると,更新処理では,そのたびに更新されてしまい,ロールバックなどが有効になりません。アプリケーションを作成する場合は,自動コミットではなく,トランザクションを使用することをお勧めします。

なお,SQL Anywhereの場合,自動コミットを設定していると,SQL文の実行が成功するとコミット,失敗するとロールバックします。

TPBrokerのOTSインタフェースでトランザクションを制御している場合
登録されているDBConnectionオブジェクトがOTSインタフェースを使用している場合でもこのクラスの各メソッドは呼び出せますが,このような場合,DBTransactionオブジェクトではトランザクション制御はしないため,各メソッドの機能は無効になります。
機 能メソッド名
トランザクションを開始します。BeginTrans
トランザクションをコミットします。Commit
DBTransactionオブジェクトの名前を取得します。GetName
トランザクションの実行中かどうかを確認します。InTransact
対象となるオブジェクトを生成したDBDriverManagerオブジェクトのポインタを取得します。Parent
DBTransactionオブジェクト(自分自身)を破棄します。Remove
トランザクションをロールバックします。Rollback
自動コミットを制御します。SetAutoCommit
<この節の構成>
BeginTransメソッド
Commitメソッド
GetNameメソッド
InTransactメソッド
Parentメソッド
Removeメソッド
Rollbackメソッド
SetAutoCommitメソッド