Exactly. Same applies to UDFs as well. Simply declare your variables.
Example:
<cffunction name="test" access="public" returnType="numeric"
output="false">
<cfset var x = 1>
<cfreturn x * 2>
</cffunction>
=======================================================================
Raymond Camden, ColdFusion Jedi Master for Mindseye, Inc
Email : [EMAIL PROTECTED]
WWW : www.camdenfamily.com/morpheus
Yahoo IM : morpheus
"My ally is the Force, and a powerful ally it is." - Yoda
> -----Original Message-----
> From: Willy Ray [mailto:[EMAIL PROTECTED]]
> Sent: Wednesday, February 12, 2003 3:26 PM
> To: CF-Talk
> Subject: RE: CFC vs. Customtag Surprise: Recursion
>
>
> Oh really? So any variables that I set within the function
> were being overwritten at every iteration by the next
> instance of the function?
>
> >>> [EMAIL PROTECTED] 02/12/03 10:15AM >>>
> I bet you forgot to var scope your variables in the CFC.
> Custom tags variables are protected by default - values in a
> CFC method must be protected explicitely(sp) using the var
> scope declaration.
>
> ==============================================================
> =========
> Raymond Camden, ColdFusion Jedi Master for Mindseye, Inc
>
> Email : [EMAIL PROTECTED]
> WWW : www.camdenfamily.com/morpheus
> Yahoo IM : morpheus
>
> "My ally is the Force, and a powerful ally it is." - Yoda
>
> > -----Original Message-----
> > From: Willy Ray [mailto:[EMAIL PROTECTED]]
> > Sent: Wednesday, February 12, 2003 11:03 AM
> > To: CF-Talk
> > Subject: CFC vs. Customtag Surprise: Recursion
> >
> >
> > Ok,
> >
> > my database table for storing my content is a big tree, set
> > up like this id ----- label ----- parentid 1 ---- 'myweb'
> > ---- 0 2 ------ 'links' -------1 3 ----- 'portfolio' ---1 4
> > ----- 'firstlink' ---- 2
> >
> > Make sense? Every row has it's own Id, and the ID of its
> > parent, and from this I get a big branching tree structure to
> > hold the data. I'm presented with this problem where I have
> > to take a branch of the tree and make an exact copy of it
> > within the database. The relationships have to be all the
> > same, but all new ids. A copy of the 'myweb' node from the
> > example above looks like this:
> >
> > id ----- label ----- parentid
> > 1 ---- 'myweb' ---- 0
> > 2 ------ 'links' -------1
> > 3 ----- 'portfolio' ---1
> > 4 ----- 'firstlink' ---- 2
> > 5 ---- 'myweb' ---- 0
> > 6 ------ 'links' -------5
> > 7 ----- 'portfolio' ---5
> > 8 ----- 'firstlink' ---- 6
> >
> > I'm thinking, excellent opportunity to go nuts with CFCs,
> > and write some recursion, right? Wrong. Here's what
> > happened (pseudo-code):
> >
> > 1.Create a function named replicate:
> >
> > 2.Takes two arguments: NodeToDuplicate, and ParentOfNewNode.
> >
> > 3.Selects everything from the table where id = nodeToDuplicate
> >
> > 4.Inserts the data from previous query with parentid =
> > arguments.ParentOfNewNode (this re-creates the node, with a
> > parent that
> > *I've* specified when I invoke the function)
> >
> > 5.Selects the MAX(id) from the table WHERE label =
> > 'thelabelIGotFromTheFirstQuery', sets that to NewNodeId
> >
> > 6.Selects all the ids WHERE parentid = NodeToDuplicate (this
> > gets all children of the current node) call it qGetChildren
> >
> > 7.Loop over qGetChildren
> > Re-invoke the replicate function from within itself for
> > every child of the current node.
> > NodeToDuplicate = qGetChildren.id
> > ParentOfNewNode = NewNodeId (the id of the newly
> > replicated node in step 4)
> > /loop
> >
> > Ok. let that soak in. Should work, right? Right. I
> > thought so too.
> > It fails hard. Gets off-track fast. I go through the logs
> > of what it did (after I reboot the web AND database server)
> > and it's getting down to the first node that has no
> > children... Then looping back to the top of the whole
> > structure, and looping trying to duplicate nodes that have no
> > relationship to the node I'm trying to duplicate, then it
> > gets into a loop where it's running down the left-hand side
> > of the tree from top to bottom over and over until the
> > house-of-cards comes crashing down, and I've killed the server.
> >
> > I'm thinking, 'It's in the logic. My recursion is bad'.
> > Spend about a week on the above 7 points. On a whim,
> > re-encapsulate THE EXACT SAME LOGIC as above into a Custom
> > Tag. Works like a freakin' charm.
> >
> > So, what's the difference? The CFCs are creating multiple
> > threads, and getting out of sync with the database returns?
> > Trying to process the next iteration before it's gotten the
> > return from the database, whereas the custom tag is running
> > more procedurally? Or what?
> >
> > Any thoughts? I'm happy to supply the actual code to anybody
> > who's interested.
> >
> > Willy
> >
> >
> >
> >
> >
> > -----
> > Willy Ray
> > Web Applications Developer
> > Certified Advanced ColdFusion Developer
> > Westminster College
> >
>
>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Archives: http://www.houseoffusion.com/cf_lists/index.cfm?forumid=4
Subscription:
http://www.houseoffusion.com/cf_lists/index.cfm?method=subscribe&forumid=4
FAQ: http://www.thenetprofits.co.uk/coldfusion/faq
Structure your ColdFusion code with Fusebox. Get the official book at
http://www.fusionauthority.com/bkinfo.cfm
Unsubscribe:
http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4