Rob, if you are using MSSQL why don't you use @@IDENTITY?

e.g. this crappy example...

<cfquery name="insertLocation" datasource="#mydsn#">
INSERT INTO tblLocations (
address1, address2, address3, town
)
VALUES (
<cfqueryparam cfsqltype="CF_SQL_VARCHAR" value="#trim(form.address1)#">,
<cfqueryparam cfsqltype="CF_SQL_VARCHAR" value="#trim(form.address2)#">,
<cfqueryparam cfsqltype="CF_SQL_VARCHAR" value="#trim(form.address3)#">,
<cfqueryparam cfsqltype="CF_SQL_VARCHAR" value="#trim(form.town)#">,

)
SELECT @@IDENTITY AS locationID
</cfquery>

#insertLocation.locationID# is then your last inserted item. (assuming
tblLocations has an identity column that is)

Cheers,

Craig.


-----Original Message-----
From: RobG [mailto:[EMAIL PROTECTED] 
Sent: 19 August 2008 16:26
To: CF-Talk
Subject: Re: CFC Best Practices

James Holmes wrote:
> You can generally avoid the problem with a cftransaction tag if you're
> doing the MAX(id) thing, but the other solutions are better
> (especially the new CF8 goodies which, for example, are a life saver
> for Oracle).

I've tried using the result.identitycol trick with CF8 and MSSQL and for 
me, it doesn't work.  I just get an error.

So what I've stuck to is this...

Before the first insert, I do <cfset now = Now()>

Then in the insert, for my date_added value, I use #now#.

Then after that, when I do my select MAX(id), I also add where 
date_added = '#now#'

AND I also wrap the whole thing in a cftransaction...

Rob



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Adobe® ColdFusion® 8 software 8 is the most important and dramatic release to 
date
Get the Free Trial
http://ad.doubleclick.net/clk;203748912;27390454;j

Archive: 
http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:311264
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