Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.1 » SQL Anywhere サーバー プログラミング » アプリケーションでの SQL の使用 » アプリケーション内のトランザクション » オートコミットまたは手動コミットモード

 

オートコミット実装の詳細

オートコミットモードでは、使用するインターフェイスやプロバイダー、またはオートコミット動作の制御方法に応じて、やや動作が異なります。

オートコミットモードは、次のいずれかの方法で実装できます。

  • クライアント側オートコミット   アプリケーションがオートコミットを使用すると、各 SQL 文の実行後、クライアントライブラリが COMMIT 文を送信します。

    ADO.NET、ADO/OLE DB、ODBC、PHP、SQL Anywhere JDBC のドライバーアプリケーションでは、クライアント側からコミットの動作を制御します。

  • サーバー側オートコミット   アプリケーションで連鎖モードを OFF にすると、データベースサーバーは各 SQL 文の結果をコミットします。Sybase jConnect JDBC ドライバーの場合、この動作は chained データベースオプションによって制御されます。

    Embedded SQL、jConnect ドライバー、Open Client のアプリケーションでは、サーバー側でのコミット動作を操作します (たとえば、chained オプションを設定します)。

ストアドプロシージャーやトリガーなどの複雑な文では、クライアント側オートコミットとサーバー側オートコミットには違いがあります。クライアント側では、ストアドプロシージャーは単一文であるため、オートコミットはプロシージャーがすべて実行された後に単一のコミット文を送信します。データベースサーバー側から見た場合、ストアドプロシージャーは複数の SQL 文で構成されているため、サーバー側オートコミットはプロシージャー内の各 SQL 文の結果をコミットします。

注意

クライアント側の実装とサーバー側の実装を混在させないでくださいSQL Anywhere ADO.NET、OLE DB、ODBC、PHP、JDBCのアプリケーションでは、chained オプションとオートコミットオプションの設定を併用しないでください。