Wow, I finally got it!!! :-)
Thanks,
Carl

On 3/24/2011 1:27 PM, Brian Kotek wrote:
> That's correct.
>
> On Thu, Mar 24, 2011 at 4:18 PM, Carl Von Stetten
> <vonner.li...@vonner.net>wrote:
>
>> I'm trying to wrap my head around this, so please excuse me for jumping
>> in.  If I understand this correctly, the query result is an object
>> placed in memory when execution is complete, and variables.qry is merely
>> a pointer to that object.  When the<cfset session.myQry =
>> variables.qry>  is executed, a second pointer to the query object is
>> created, in the session scope.  When page execution completes, the
>> variables.qry pointer disappears (and I assume is garbage collected at
>> some point), but because the session.myQry pointer still exists in the
>> session scope, the query object remains in memory instead of being
>> garbage collected.  Once the session times out, assuming there are no
>> other pointers to the query object existing, it would then be garbage
>> collected.
>>
>> Is this a correct understanding, or am I completely off my rocker?
>> Thanks,
>> Carl
>>
>> On 3/24/2011 12:59 PM, Brian Kotek wrote:
>>> All complex data types are always passed by reference. Where you set them
>>> makes no difference. (Except arrays, which are passed by value due to a
>>> staggeringly poor decision eons ago.)
>>>
>>>
>>> On Thu, Mar 24, 2011 at 3:49 PM, Eric Cobb<cft...@ecartech.com>   wrote:
>>>
>>>> I know that complex data types (structs, CFCs, queries, COM/JavaObjects,
>>>> etc...) are passed by reference, not by value.  But I'm wondering how
>>>> that works when storing them in the session scope.
>>>>
>>>> For example, let's say I have a query that returns a really large result
>>>> set, and after that query runs I store the query results as a variable
>>>> in the session scope.
>>>>
>>>> <cfquery name="variables.qry">
>>>>       select    *
>>>>       FROM    bigTable
>>>> </cfquery>
>>>>
>>>> <cfset session.myQry = variables.qry>
>>>>
>>>> Would the above code just create a reference to the result set already
>>>> in memory, or would it actually create a copy of the results in the
>>>> session?
>>>> In a similar scenario, what would happen if I had a CFC object stored in
>>>> the session, then passed my query results to it to be stored in that
>>>> CFCs "variables" scope?
>>>>
>>>> <cfquery name="variables.qry">
>>>>       select    *
>>>>       FROM    bigTable
>>>> </cfquery>
>>>>
>>>> <cfset session.myCFC.blah(variables.qry)>
>>>>
>>>> --
>>>>
>>>> Thanks,
>>>>
>>>> Eric Cobb
>>>> http://www.cfgears.com
>>>> Help me make a difference this summer. http://bit.ly/i8dJvQ
>>>>
>>>>
>>>>
>>>>
>>>>
>>
> 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Order the Adobe Coldfusion Anthology now!
http://www.amazon.com/Adobe-Coldfusion-Anthology/dp/1430272155/?tag=houseoffusion
Archive: 
http://www.houseoffusion.com/groups/cf-talk/message.cfm/messageid:343257
Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/groups/cf-talk/unsubscribe.cfm

Reply via email to