Autocommit mode has slightly different behavior depending on the interface you are using and how you control the autocommit behavior.
Autocommit mode can be implemented in one of two ways:
Client-side autocommit When an application uses autocommit, the client-library sends a COMMIT statement after each SQL statement executed.
ADO.NET, ADO/OLE DB, ODBC, and PHP applications control commit behavior from the client side.
Server-side autocommit When an application turns off chained mode, the database server commits the results of each SQL statement. For JDBC this behavior is controlled by the chained database option.
Embedded SQL, JDBC, and Open Client applications manipulate server-side commit behavior (for example, they set the chained option).
For compound statements such as stored procedures or triggers there is a difference between client-side and server-side autocommit. From the client side, a stored procedure is a single statement, and so autocommit sends a single commit statement after the whole procedure is executed. From the database server perspective, the stored procedure may be composed of many SQL statements, and so server-side autocommit commits the results of each SQL statement within the procedure.
Do not combine setting of the chained option with setting of the autocommit option in your ADO.NET, ADO/OLE DB, ODBC, or PHP application.
Discuss this page in DocCommentXchange.
|Copyright © 2010, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.0|