Database Tour Documentation Contents Index

Transactions

Top Previous Next

Transaction (in its simplified meaning) is a set of data changes, which must be completed together. Commit makes the data changes, made in the transaction, permanent, and rollback cancells the data changes.

Transaction control is done differently depending on used database interface:

ADO, BDE

By default, Database Tour uses autocommit, which means that all data changes made in the progam are automatically committed.

To control transactions manually, use Database | Transactions menu or 'Begin or Commit Transaction' and 'Rollback Transaction' buttons. So, if you start transaction manually, autocommit is off and you must commit or rollback manually. After you commit or rollback your manually started transaction, the autocommit is on again.

Interbase

Every DDL or DML change in open database automatically starts a transaction, which you can commit or rollback manually using Database | Transactions menu or Commit Transaction and Rollback Transaction buttons. Please note that chnages in one open database are done in context of only one transaction (although Interbase server allows more of them).

Notes

1. When closing a database that already in transaction you started manually, you will be prompted to commit or rollback.

2. Transactions may work differently for different database types. See your server documentation for more details.

Transaction isolation level

Transaction isolation level specifies the visibility of changes, if more than one client operates the database:

-Dirty Read - All changes (even not committed) are visible inside the current transaction;
-Read Committed - Only committed changes are visible inside the current transaction;
-Repeatable Read - Only changes, which were done before starting the current transaction, are visible inside the current transaction.

The following options are applied to ADO connections only (in addition to the previous ones):

-Chaos - Changes from more highly isolated transactions cannot be overwritten by the current connection;
-Browse - Uncommitted changes in other transactions are visible;
-Cursor Stability - only committed changes are visible inside the current transaction;
-Serializable, Isolated - Transactions conducted in isolation from other transactions;
-Unspecified - Server is using an isolation level other than what was requested and the specific isolation level cannot be determined.

You can select an isolation level through Database | Transaction Isolation menu.

Not all levels are allowed for all database types: for example, you may use only the Dirty Read level for local BDE connections (DB, DBF, FoxPro).