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

Reply via email to