Tom, The statement about, You should only use cftransaction tag to make sequence of SQL statements into one atomic unit.
Is Correct. Your Statement about, You should never have anything inside your cftransaction block that is not SQL related especially if its going to take a long time (i.e. more than few ms). Is not Correct, in the instance of objects and dao's it is the only way to achieve a transaction for your queries, for example. <cftransaction> <cfset copyRecord = object.Load(id=100) /> <cfset newObject = Object.CreateRecord() /> <cfset newObject.setItem(copyRecord.getItem()) /> <cfset fileObject.SaveImage(form.Somefilename) /> <cfset newObject.Save(false) /> </cftransaction> Now to role this back for files, you will need to wrap the entire thing in a cftry block, so that you can delete or whatever you need to do with the maintenance of the file. Andrew Scott Senior Coldfusion Developer Aegeon Pty. Ltd. www.aegeon.com.au Phone: +613 8676 4223 Mobile: 0404 998 273 -----Original Message----- From: Tom Kitta [mailto:[EMAIL PROTECTED] Sent: Monday, 5 March 2007 10:20 AM To: CF-Talk Subject: Re: <cftransaction> Question You should only use cftransaction tag to make sequence of SQL statements into one atomic unit. You should never have anything inside your cftransaction block that is not SQL related especially if its going to take a long time (i.e. more than few ms). You don't want to lock your SQL server DBs because some operation such as FTP is taking place. cftransaction will rollback if there is an error in the SQL executed within it. You can also use the rollback option to rollback on some user error. The rollback here refers only to SQL. To answer your question, no cftransaction will not delete any files etc. for you, it is only for SQL. TK ----- Original Message ----- From: "Deepak Gupta" <[EMAIL PROTECTED]> To: "CF-Talk" <[email protected]> Sent: Sunday, March 04, 2007 1:31 PM Subject: <cftransaction> Question > Hi Everyone > > I am using cftransaction around few things > 1> Reading a file to my local from ftp site > 2> query to insert > 3> query to loop and do some operations > 4> zip files > > Now according cftransaction if there is any error in these > functionalities, it should rollback to the initial stage right? But its > not working in my case. > It picks the file from ftp to local, then there is an error in query, it > stops there but doesn't rollback ( i mean it doesn't remove the file read > on local ). It should remove the file read through FTP rite? > > Code Used: > <cftransaction> > <cftry> > 1- FTP read > 2-Query ( Error one) > > <cftransaction action="commit" /> > <cfcatch type="tran"> > <cftransaction action="rollback" /> > <cfset request.lstErrorMessages = > ListAppend(request.lstErrorMessages,cfcatch.message)> > </cfcatch> > <cfcatch type="any"> > <cftransaction action="rollback" /> > <cfset request.lstErrorMessages = > ListAppend(request.lstErrorMessages,cfcatch.message)> > </cfcatch> > </cftry> > </cftransaction> > Can anyone help[ me with this one. what is wrong with this approach? > > DG > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~| Macromedia ColdFusion MX7 Upgrade to MX7 & experience time-saving features, more productivity. http://www.adobe.com/products/coldfusion Archive: http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:271467 Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4

