AutoCommit

Description

For those DBMSs and database interfaces that support it, AutoCommit controls whether DataWindow Designer issues SQL statements outside or inside the scope of a transaction.

When AutoCommit is set to False (the default), DataWindow Designer issues SQL statements inside the scope of a transaction. When AutoCommit is set to True, DataWindow Designer issues SQL statements outside the scope of a transaction.

NoteWhen to specify AutoCommit In the development environment, you must set AutoCommit before connecting to the database. AutoCommit takes effect only when the database connection occurs. Changes to AutoCommit after the connection occurs have no effect on the current connection.

In code, you can reset the value of AutoCommit at any time. This lets you override the initial setting if necessary.

Applies to

Context

In an application

For those DBMSs and database interfaces that support it, you can set AutoCommit in a script as a property of the Transaction object. The following syntax assumes you are using the default Transaction object SQLCA (but you can also define your own Transaction object):

SQLCA.AutoCommit = value

Parameter

Description

value

Specifies whether the DataWindow server issues SQL statements outside or inside the scope of a transaction. Values are:

  • True the DataWindow server issues SQL statements outside the scope of a transaction. The statements are not part of a logical unit of work (LUW). If the SQL statement is successful, the DBMS updates the database immediately as if a COMMIT statement had been issued.

  • False (Default) the DataWindow server issues SQL statements inside the scope of a transaction. the DataWindow server issues a BEGIN TRANSACTION statement at the start of the connection and issues another BEGIN TRANSACTION statement after each COMMIT or ROLLBACK statement is issued.

In the development environment

Select or clear the AutoCommit Mode check box on the Connection tab in the Database Profile Setup dialog box, as follows:

For instructions, see “Setting Additional Connection Parameters” in Connecting to Your Database.

Default

AutoCommit = False

Usage

Transactions A transaction is one or more SQL statements that form a logical unit of work (LUW). Within a transaction, all SQL statements must succeed or fail as one logical entity. Changes are made to the database only if all statements in the transaction succeed and a COMMIT is issued. If one or more statements fail, you must issue a ROLLBACK to undo the changes. This ensures the integrity and security of data in your database.

Executing SQL DDL statements Some DBMSs require you to execute certain SQL statements outside the scope of a transaction. For example, when connected to a SQL Server database, you must execute SQL Data Definition Language (DDL) statements such as CREATE TABLE and DROP TABLE outside a transaction. There are two reasons for this:

Therefore, to execute DDL statements or stored procedures containing DDL statements in a SQL Server database, you must set AutoCommit to true to issue the DDL statements outside the scope of a transaction. You should, however, set AutoCommit back to false immediately after executing the DDL statements.

When you change the value of AutoCommit from false to true, the DataWindow server issues a COMMIT statement by default.

NoteCaution When you set AutoCommit to true, you cannot roll back database changes. Therefore, use care when changing the setting of AutoCommit.

DirectConnect interface As part of the Connect process, the DIR interface automatically issues TransactionMode = short to override the access service default configuration. It then issues begin transaction at connect time and after every Commit and Rollback whenever AutoCommit = False. Most developers should start their connections with AutoCommit = True, switch to False only when the application demands transaction processing, and then switch back to AutoCommit = True after the transaction is committed or rolled back.

Examples

Example 1

To set AutoCommit to true and issue SQL statements outside the scope of a transaction:

Using the examples in code

If you specify AutoCommit Mode in your database profile, the correct syntax displays on the Preview tab in the Database Profile Setup dialog box. You can copy the syntax from the Preview tab into your code.