[NO]AUTOCOMMIT
デフォルト: | NOAUTOCOMMIT |
コンパイル時の使用: | なし |
実行時の動作: | 処理 |
詳細については、「範囲 - OpenESQL SQL コンパイラ指令オプション」を参照してください。
デフォルトでは NOAUTOCOMMIT が使用されるため、OpenESQL のデフォルト動作では、接続の作成方法に関係なく、SQL 接続のオートコミット属性は明示的に無効になります。
OpenESQL 接続の場合、NOAUTOCOMMIT を使用すると、通常の COMMIT 文および ROLLBACK 文によって、アプリケーションでローカル トランザクションを制御できます。ただし、Java アプリケーション サーバーによって作成された外部接続など、OpenESQL によって作成された接続ではない場合、NOAUTOCOMMIT を使用して接続のオートコミット属性を無効にすると、エラーが発生する可能性があります。
AUTOCOMMIT が明示的に指定されている場合は、接続が OpenESQL によって作成されたか他の方法によって作成されたかに関係なく、SQL 接続のオートコミット属性は変更されません。OpenESQL 接続では、「オートコミット モード」で動作しているアプリケーションのすべての SQL 文が AUTOCOMMIT によってコミットされることになります。外部接続では、オートコミット属性は変更されないため、アプリケーションは外部で管理されるトランザクションに引き続き参加します。
SET AUTOCOMMIT 埋め込み SQL 文は、AUTOCOMMIT コンパイラ指令オプションをオーバーライドします。
アプリケーションでは、EXEC SQL SET AUTOCOMMIT 文を実行することによって、接続のオートコミット設定をプログラムで制御できます。
オートコミット モードのアプリケーションでは、EXEC SQL BEGIN TRANSACTION 文によって、ローカル データベース トランザクションを開始できます。トランザクションは、次の COMMIT 文または ROLLBACK 文が実行されると終了します。
トランザクションが終了すると、接続のオートコミット属性が有効の場合、接続はオートコミット モードに戻ります。それ以外の場合は、新しいローカル データベース トランザクションが自動的に開始されます。