cftransaction

Instructs the database management system to treat multiple
database operations as a single transaction. Provides database
commit and rollback processing.
Note that distributed transactions (transactions across multiple datasources) are not supported - you must commit one transaction and begin a separate transaction to one database before writing a query to another (CFMX7 Manual)

  <cftransaction>

 transaction { }

Attribute Reference

action string
Default: begin

begin: the start of the block of code to execute
commit: commits a pending transaction
rollback: rolls back a pending transaction
setsavepoint: Marks a place within the transaction as a savepoint.
Values:
  • begin
  • commit
  • rollback
  • setsavepoint

isolation string

ODBC lock type.
Values:
  • read_uncommitted
  • read_committed
  • repeatable_read
  • serializable

savepoint string

The name of the savepoint in the transaction. Used with action="setsavepoint" or action="rollback"

nested boolean

specifies whether transaction is nested or not
Values:
  • true
  • false

Compatibility

Lucee:

Lucee does not currently support the savepoint attribute.

Examples
Sample code using the cftransaction tag


transaction { 
 try { 
 // code to run 
 transaction action="commit"; 
 } 
 catch(any e) { 
  transaction action="rollback"; 
  } 
 }

<cftransaction> 
 <cftry> 
 <!--- code to run ---> 
   <cftransaction action="commit" /> 
 <cfcatch type="any"> 
 <cftransaction action="rollback" /> 
 </cfcatch> 
 </cftry> 
 </cftransaction>

Signup for cfbreak to stay updated on the latest news from the ColdFusion / CFML community. One email, every friday.

Fork me on GitHub