Thanks Charlie, Dan, Jake. Infrequent, but there it goes to my UDF
collection.

-----Original Message-----
From: Charlie Griefer [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, November 15, 2006 11:44 AM
To: CF-Talk
Subject: Re: Convert Structure to Query

On 11/15/06, Walter Conti <[EMAIL PROTECTED]> wrote:
> Is there a function to convert a structure to a query?
> Thank You

ok i needed a break from what i was doing and felt like playing :)

<cfscript>
        myStruct = structNew();
        
        myStruct.empName                = "bob Smith";
        myStruct.empDept                = "accounting";
        myStruct.empPhone               = "555-1212";
        myStruct.empHireDate    = createDate(2000, 5, 1);
</cfscript>

<cfdump var="#myStruct#" label="myStruct" />


<!--- doing it manually --->
<cfscript>
        myQuery = queryNew(structKeyList(myStruct));
        queryAddRow(myQuery, 1);
        for (i in myStruct) {
                querySetCell(myQuery, i, myStruct[i]);
        }
</cfscript>

<cfdump var="#myQuery#" label="doing it manually">


<!--- a UDF using cfscript --->
<cfscript>
        function struct2Query(struct) {
                var i           = "";
                var myQuery     = "";
                
                if (NOT isStruct(arguments.struct)) return false;
                
                myQuery = queryNew(structKeyList(arguments.struct));
                queryAddRow(myQuery, 1);
                for (i in arguments.struct) {
                        querySetCell(myQuery, i, arguments.struct[i]);
                }
                
                return myQuery;
        }
</cfscript>

<cfdump var="#struct2Query(myStruct)#" label="a UDF with cfscript">


<!--- a UDF using <cffunction> --->
<cffunction name="struct2Query2" output="false" returntype="query">
        <cfargument name="argStruct" type="struct" required="true" />
        
        <cfset var key          = "" />
        <cfset var myQuery      =
queryNew(structKeyList(arguments.argStruct)) />

        <cfset queryAddRow(myQuery, 1) />       

        <cfloop collection="#argStruct#" item="key">
                <cfset querySetCell(myQuery, key, arguments.argStruct[key])
/>
        </cfloop>
        
        <cfreturn myQuery />    
</cffunction>

<cfdump var="#struct2Query2(myStruct)#" label="using cffunction">

-- 
Charlie Griefer

================================================
"...All the world shall be your enemy, Prince with a Thousand Enemies,
and whenever they catch you, they will kill you. But first they must catch
you, digger, listener, runner, prince with a swift warning.
Be cunning and full of tricks and your people shall never be destroyed."



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Introducing the Fusion Authority Quarterly Update. 80 pages of hard-hitting,
up-to-date ColdFusion information by your peers, delivered to your door four 
times a year.
http://www.fusionauthority.com/quarterly

Archive: 
http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:260574
Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm
Unsubscribe: 
http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=11502.10531.4

Reply via email to