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

Reply via email to