CFTRANSACTION | |
Description
For enterprise database management systems that support transaction processing, instructs the database management system to treat multiple database operations as a single transaction. Provides database commit and rollback processing. See the documentation for your database management system to determine whether it supports SQL transaction processing. |
|
Category
Database manipulation tags | |
Syntax<cftransaction action = "begin" or "commit" or "rollback" isolation = "read_uncommitted" or "read_committed" or "repeatable_read" > </cftransaction> |
|
See also
cfinsert, cfprocparam, cfprocresult, cfquery, cfqueryparam, cfstoredproc, cfupdate; "Commits, rollbacks, and transactions" in Chapter 19, "Introduction to Databases and SQL," in ColdFusion MX Developer's Guide
|
|
Usage
If you do not specify a value for the action attribute, automatic transaction processing proceeds as follows:
If you do not specify a value for the isolation attribute, ColdFusion uses the default isolation level for the associated database. Using CFML error handling and the action attribute, however, you can also explicitly control whether a transaction is committed or rolled back, based on the success or failure of the database query. Within a transaction block, you can do the following:
(In these examples, the slash is alternate syntax that is the equivalent of an end tag.) Within a transaction block, you can write queries to more than one database, but you must commit or roll back a transaction to one database before writing a query to another. To control how the database engine performs locking during the transaction, use the isolation attribute. |
|
Example<p>CFTRANSACTION can be used to group multiple queries that use CFQUERY into one business event. Changes to data that is requested by the queries are not committed to the datasource until all actions within the transaction block have executed successfully. <p>This a view-only example. <!--- <cftransaction> <cfquery name='makeNewCourse' datasource='Snippets'> INSERT INTO Courses (Number, Descript) VALUES ('#myNumber#', '#myDescription#') </cfquery> <cfquery name='insertNewCourseToList' datasource='Snippets'> INSERT INTO CourseList (CorNumber, CorDesc, Dept_ID, CorName, CorLevel, LastUpdate) VALUES ('#myNumber#', '#myDescription#', '#myDepartment#', '#myDescription#', '#myCorLevel#', #Now()#) </cfquery> </cftransaction> ---> |
ACTION | |
Optional | |
Default value: "begin"
|
ISOLATION | |
Optional | |
ODBC lock type:
|