トランザクションを管理するクラスです。
トランザクションを制御する,BeginTrans,Commit,Rollbackなどのメソッドや,トランザクションの処理中かどうかを確認するメソッドなどを提供します。
更新処理をするアプリケーションの作成では,できるだけデータベースアクセスにトランザクションを使用してください。もし,トランザクション管理をしなかった場合,コミットは次のように実行されます。
データベースを更新するSQL文を一文実行するごとにコミットされます。これを,自動コミットといいます。自動コミットをするかしないかは,SetAutoCommitメソッドで指定します。
自動コミットは,SELECT文以外のSQLを実行した直後にコミットします。
具体的には,DBConnectionクラスのExecuteDirectメソッド,DBStatementクラスのExecuteメソッド,DBPreparedStatementクラスのExecuteUpdateメソッドでSQL文を実行した後,又はDBResultSetクラスのUpdate,Deleteメソッドを実行した後にコミットします。
ただし,自動コミットを設定すると,更新処理では,そのたびに更新されてしまい,ロールバックなどが有効になりません。アプリケーションを作成する場合は,自動コミットではなく,トランザクションを使用することをお勧めします。
なお,SQL Anywhereの場合,自動コミットを設定していると,SQL文の実行が成功するとコミット,失敗するとロールバックします。
機 能 | メソッド名 |
---|---|
トランザクションを開始します。 | BeginTrans |
トランザクションをコミットします。 | Commit |
DBTransactionオブジェクトの名前を取得します。 | GetName |
トランザクションの実行中かどうかを確認します。 | InTransact |
対象となるオブジェクトを生成したDBDriverManagerオブジェクトのポインタを取得します。 | Parent |
DBTransactionオブジェクト(自分自身)を破棄します。 | Remove |
トランザクションをロールバックします。 | Rollback |
自動コミットを制御します。 | SetAutoCommit |