The make them separate CFCs. Have one CFC that does the query and assigns the result to the session scope or whatever scope. Have another CFC the retrieves the query from the appropriate scope based on context.
Matt Liotta President & CEO Montara Software, Inc. http://www.montarasoftware.com/ V: 415-577-8070 F: 415-341-8906 P: [EMAIL PROTECTED] > -----Original Message----- > From: Stacy Young [mailto:[EMAIL PROTECTED]] > Sent: Saturday, August 03, 2002 3:58 PM > To: CF-Talk > Subject: RE: cfreturn session.records ? > > " However, if the CFC stores things in session scope - why bother > returning > them at all? Why not just let the caller access session.stuff directly?" > > --------------------------- > > >From the display perspective I won't know the scope in which to look for > the > data...instead I use a combination of get/set methods to create and > access > these objects.... > > For the display I have: > > <cfinvoke > component="report.facade" > method="getSummary" > returnvariable="aStruct"> > </cfinvoke> > > <cfloop query="aStruct.query1"> > > </cfloop> > > For certain roles that data will reside in application scope and others in > session....I felt I needed to do this because the app is very data > intensive. > > Stace > > -----Original Message----- > From: Sean A Corfield [mailto:[EMAIL PROTECTED]] > Sent: Saturday, August 03, 2002 6:17 PM > To: CF-Talk > Subject: Re: cfreturn session.records ? > > On Saturday, August 3, 2002, at 02:58 , Stacy Young wrote: > > If I have a CFC that stores its results in session scope is the data > > duplicated on the return or is the session data just referenced via > > pointer > > of sorts? > > It uses reference semantics. However, it's not really good practice to > have CFCs store results in shared scopes - CFCs should be independent of > their environment. > > However, if the CFC stores things in session scope - why bother returning > them at all? Why not just let the caller access session.stuff directly? > > > <cffunction name="getAccounts"> > > You should add returntype="query" for extra validation. > > > <cfquery name="session.test"> > > SELECT * FROM BLAH > > </cfquery> > > <cfreturn session.test> > > </cffunction> > > You'd be better off having the caller (only) know about the session scope > and using a local variable inside the function: > > <cfset var test = 0/> > <cfquery name="test"> > SELECT * FROM BLAH > </cfquery> > <cfreturn test/> > > Then the caller would do: > > <cfinvoke component="accounts" > method="getAccounts" > returnvariable="session.aQuery"/> > > if you wanted it to stay in session scope (the query is not copied, only a > reference to it, so this is fast). Or, if you just wanted a local copy: > > <cfinvoke component="accounts" > method="getAccounts" > returnvariable="aQuery"/> > > Note that since 'test' inside the function is declared with 'var', it will > be a new copy for every invocation. > > "If you're not annoying somebody, you're not really alive." > -- Margaret Atwood > > > ______________________________________________________________________ Get the mailserver that powers this list at http://www.coolfusion.com FAQ: http://www.thenetprofits.co.uk/coldfusion/faq Archives: http://www.mail-archive.com/[email protected]/ Unsubscribe: http://www.houseoffusion.com/index.cfm?sidebar=lists

