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

SQL Anywhere 12.0.0 » SQL Anywhere Server - Programming » Using SQL in applications » Controlling transactions in applications » Setting autocommit or manual commit mode

 

Autocommit implementation details

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 mix client-side and server-side implementations

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.