I'll admit, I only briefly scanned your code, but start by varring all your local variables including the query at the top of the function
<cfset var childFolders = ""> <cfset var ax1 = ""> Etc... ~Brad -----Original Message----- From: Richard White [mailto:[EMAIL PROTECTED] Sent: Monday, June 02, 2008 4:06 PM To: CF-Talk Subject: recursive functions and cfqueries hi i am having a problem with a recursive function resetting the contents of a query, so i must be doing it wrong, can anyone spot what i should be doing please, thanks basically i pass in a folderid and query to see if it has any children, if it does then it adds the child and goes on to recall if the sub folder has children. the problem is that when it reaches the bottom and finds a folder that doesnt have any children then it comes back up a level and the query is blank. so how can i get it to keep the contents of an array local to that recursion of the function i.e. when it comes up a lavel, it remembers the query for that folder the recursive function builds up a tree as follows: <cffunction name="addXMLFolderNodes"> <cfargument name="xmlElement" type="xml" required="yes"> <cfargument name="childXMLCountReference" type="numeric" required="yes"> <cfargument name="parentID" type="numeric" required="yes"> <!--- first see if this folder has any children folders ---> <cfquery name="childFolders" datasource="portexunitich" username="#session.dbUsername#" password="#session.dbPassword#"> SELECT * from querytree where folderParentID = <cfqueryparam value="#parentID#" cfsqltype="cf_sql_bigint" maxlength="20" null="no">; </cfquery> <!--- loop through adding them to the tree ---> <cfloop index="ax1" from="1" to="#childFoldersTemp.recordcount#"> <cfset xmlElement.xmlChildren[childXMLCountReference] = XmlElemNew(MyDoc, "row")> <cfset xmlElement.xmlChildren[childXMLCountReference].XmlAttributes["id"] = childFoldersTemp.folderID> <cfset xmlElement.xmlChildren[childXMLCountReference].XmlAttributes["bgColor"] = "white"> <cfset xmlElement.xmlChildren[childXMLCountReference].XmlChildren[1] = XmlElemNew(MyDoc, "cell")> <cfset xmlElement.xmlChildren[childXMLCountReference].XmlChildren[1].XmlText = childFoldersTemp.folderName> <cfset xmlElement.xmlChildren[childXMLCountReference].XmlChildren[1].XmlAttribu tes["image"] = "folderOpen.gif"> <cfoutput>'#childFoldersTemp.folderID[ax1]#'</cfoutput> <cfset temp = addXMLFolderNodes(xmlElement.xmlChildren[childXMLCountReference],2,child FoldersTemp.folderID[ax1])> <cfset childXMLCountReference++> </cfloop> </cffunction> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~| Adobe® ColdFusion® 8 software 8 is the most important and dramatic release to date Get the Free Trial http://ad.doubleclick.net/clk;192386516;25150098;k Archive: http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:306637 Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4

