CFLib.org – Common Function Library Project

getGeneratedKey(resultStruct)

Last updated February 15, 2008
Download UDF

author

Todd Sharp Todd Sharp

Version: 1 | Requires: ColdFusion 8 | Library: DatabaseLib

 
Rated 2 time(s). Average Rating: 5.0

Description:
This UDF takes the result struct from cfquery and returns the proper generated key from that struct.

Return Values:
Returns a value.

Example:

<cfquery name="insertArtist" datasource="cfartgallery" result="r">
insert into artists
(firstName, lastName)
values(
'todd','sharp'
)
</cfquery>
<cfquery name="getArtists" datasource="cfartgallery">
select *
from artists
</cfquery>
<cfdump var="#getArtists#">
<cfoutput>#getGeneratedKey(r)#</cfoutput>

Parameters:

Name Description Required
resultStruct Structure. Yes

Full UDF Source:

<!---
Normalizes the various possible returned keys in the cfquery result struct.

@param resultStruct      Structure. (Required)
@return Returns a value.
@author Todd Sharp (todd@cfsilence.com)
@version 1, October 14, 2008
--->

<cffunction name="getGeneratedKey" hint="i normalize the key returned from cfquery" output="false">
    <cfargument name="resultStruct" hint="the result struct returned from cfquery" />
    <cfif structKeyExists(arguments.resultStruct, "IDENTITYCOL")>
        <cfreturn arguments.resultStruct.IDENTITYCOL />
    <cfelseif structKeyExists(arguments.resultStruct, "ROWID")>
        <cfreturn arguments.resultStruct.ROWID />
    <cfelseif structKeyExists(arguments.resultStruct, "SYB_IDENTITY")>
        <cfreturn arguments.resultStruct.SYB_IDENTITY />
    <cfelseif structKeyExists(arguments.resultStruct, "SERIAL_COL")>
        <cfreturn arguments.resultStruct.SERIAL_COL />    
    <cfelseif structKeyExists(arguments.resultStruct, "GENERATED_KEY")>
        <cfreturn arguments.resultStruct.GENERATED_KEY />
    <cfelse>
        <cfreturn />
    </cfif>
</cffunction>

Search CFLib.org


Latest Additions

Ryan Thompson-Jewell Ryan Thompson-Jewell added
ListSplit
13 hour(s) ago

Nathan Dintenfass Nathan Dintenfass added
RowsToColumns
13 hour(s) ago

Barney Boisvert Barney Boisvert added
indentXml
23 hour(s) ago

Barney Boisvert Barney Boisvert added
REReplaceCallbac...
23 hour(s) ago

Top Rated

Rob Brooks-Bilson                                 FolderSize
Rated 5.0, 7 time(s)

Nick Giovanni                                     UniqueValueList
Rated 5.0, 5 time(s)

James Sleeman                                     QuickSort
Rated 5.0, 3 time(s)

Stephen Withington RandomizeString
Rated 5.0, 3 time(s)

Created by Raymond Camden / Design by Justin Johnson