オートコミット・モードでは、使用するインタフェースやオートコミット動作の制御方法に応じて、やや動作が異なります。
オートコミット・モードは、次のいずれかの方法で実装できます。
クライアント側オートコミット アプリケーションがオートコミットを使用すると、各 SQL 文の実行後、クライアント・ライブラリが COMMIT 文を送信します。
ADO.NET、ADO/OLE DB、ODBC、PHP のアプリケーションでは、クライアント側からコミットの動作を制御します。
サーバ側オートコミット アプリケーションで連鎖モードを OFF にすると、データベース・サーバは各 SQL 文の結果をコミットします。JDBC の場合、この動作は chained データベース・オプションによって暗黙的に制御されます。
Embedded SQL、JDBC、Open Client のアプリケーションでは、サーバ側でのコミット動作を操作します (たとえば、chained オプションを設定します)。
ストアド・プロシージャやトリガなどの複雑な文では、クライアント側オートコミットとサーバ側オートコミットには違いがあります。クライアント側では、ストアド・プロシージャは単一文であるため、オートコミットはプロシージャがすべて実行された後に単一のコミット文を送信します。データベース・サーバ側から見た場合、ストアド・プロシージャは複数の SQL 文で構成されているため、サーバ側オートコミットはプロシージャ内の各 SQL 文の結果をコミットします。
ADO.NET、ADO/OLE DB、ODBC、PHP のアプリケーションでは、chained オプションとオートコミット・オプションの設定を併用しないでください。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |