Depending on the database, you could also try just adding:
SELECT identityfield = SCOPE_IDENTITY()
to the end of the insert queries, this one is SQL Server specific though.

~Mahcsig



On Wed, Jan 27, 2010 at 1:25 PM, Michael Dinowitz <
[email protected]> wrote:

>
> OK, so it turns out that this is a known issue that came into effect
> between CF 7 and CF 8. I can do one of three things here.
>
> 1. replace the name attribute with the result attribute:
> <cfquery name="AddAgent"> becomes <cfquery result="AddAgent">
>
> 2. add a result attribute of the same name to the cfquery
> <cfquery name="AddAgent"> becomes <cfquery name="AddAgent"
> result="AddAgent">
>
> 3. use a 'generic' result value to the cfquery
> <cfquery name="AddAgent"> becomes <cfquery name="AddAgent"
> result="QueryResult">
>
> The problem that I see is that I don't know everywhere that the query
> results will be used.
> Is anything returned to the 'name' variable of the query? If not, then will
> removing it cause some other unforeseen effect? (experiments so far say no)
> Will the use of both a name and a result conflict? (experiments so far say
> no)
> How will all this interact with Fusebox? Is the results of a query in an
> act_ page supposed to be 'exposed' to the dsp_ page?
>
> If anyone has a clue or two on which way I should go on this, please let me
> know. I've got to fix this in almost 700 places (the client site is a royal
> mess of backed up and copied code) and a single, standard approach is what I
> need. Luckily, the RegEx to find all of the locations took 60 seconds to
> write. Literally.
>
> The hard is fast, the easy is slow. How standard for me. :)
>
> --
> Michael
>
> >I just ran into this and while it's new to me, I'm sure it's old news
> >to others here. I'm looking at someones code from CF 7 where they have
> >a cfquery inserting a record. The cfquery tag only has a name and a
> >datasource. Immediately after the tag, there is a cfset that makes use
> >of the query's name and the name of the identity field of the table
> >that the data was inserted into.
> >
> ><cfquery name="testquery" datasource="test">
> >insert ...
> ></cfquery>
> ><cfset newid = testquery.identityfield>
> >
> >In CF 7, the newid would be the id of the newly inserted record. In CF
> >9 all I get is an error. If I use a result attribute rather than a
> >name attribute, I get a structure with the identity result buried in
> >it.
> >
> >So here's the question. If it worked in 7 and not in 9, is there a
> >simple fix to make it work like it did in 7 again? I'd rather not have
> >to recode a whole slew of insert statements.
> >
> >Thanks
> >
> >--
> >Michael
>
> 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Want to reach the ColdFusion community with something they want? Let them know 
on the House of Fusion mailing lists
Archive: 
http://www.houseoffusion.com/groups/cf-talk/message.cfm/messageid:330197
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