This sample shows how to manage database transactions.
You can find the Transactions sample project at:
- Start | Programs | Embarcadero RAD Studio Berlin | Samples and then navigate to:
Object Pascal\Database\FireDAC\Samples\Comp Layer\TFDConnection\Transactions
- Subversion Repository:
The Transactions sample shows you how to manage database transactions. This sample demostrates how to use the following properties and methods:
- The isolation property is used for setting up the transaction isolation level for the transactions managed by FireDAC.
- The auto commit property is used to control the automatic transaction management.
- The start transaction method is used to start a new DBMS transaction.
- The commit method is used to permanently store modifications made in the current transaction to the database.
- The rollback method is used to cancel all modifications made in the current transaction to the database.
How to Use the Sample
- Navigate to the location given above and open
- Press F9 or choose Run > Run.
- Click on the Use Connection Definition combo box and select an option.
|File in Delphi||Contains|
The project itself.
The main form.
The sample implements the following database transaction features:
Setting up Transaction Isolation Level
The sample sets the Isolation property to
xiReadCommitted to allow the reading of committed (permanent) changes made to the database by other simultaneous transactions. This is the default value of the Isolation property. It is set by typing the following code:
with dmlMainBase.dbMain do begin TxOptions.Isolation := xiReadCommitted;
Controlling Auto Commit Mode
The sample turns off the AutoCommit mode by typing:
TxOptions.AutoCommit := False;
The sample starts a new DBMS transaction by typing:
StartTransaction; try // execute simple command inside transaction ...
To permanently store modifications made in the current transaction to the database, call the Commit method.
... FDQuery1.ExecSQL; // Commit transaction Commit;
The sample uses the Rollback method to cancel all the current transaction modifications when an exception is raised.
StartTransaction; try // ... FDQuery1.ExecSQL; // ... // Commit transaction Commit; except // During FDQuery1.ExecSQL it's raised an exception and transaction now rollbacking Rollback; raise; end;