User Guide

Table Of Contents
54 Chapter 3: Using ColdFusion Variables
When you assign a query to a new variable, ColdFusion does not copy the query object. Instead,
both names point to the same record set data. For example, the following line creates a new
variable, myQuery2, that references the same record set as the myQuery variable:
<cfset myQuery2 = myQuery>
If you make changes to data in myQuery, myQuery2 also shows those changes.
You reference query columns by specifying the query name, a period, and the column name; for
example:
myQuery.Dept_ID
When you reference query columns inside tags, such as cfoutput and cfloop, in which you
specify the query name in a tag attribute, you do not have to specify the query name.
You can access query columns as if they are one-dimensional arrays. For example, the following
line assigns the contents of the Employee column in the second row of the myQuery query to the
variable myVar:
<cfset myVar = myQuery.Employee[2]>
Note: You cannot use array notation to refer to a row (of all columns) of a query. For example,
myQuery[2] does not refer to the second row of the myQuery query object.
Working with structures and queries
Because structure variables and query variables are references to objects, the rules in the following
sections apply to both types of data.
Multiple references to an object
When multiple variables refer to a structure or query object, the object continues to exist as long
as at least one reference to the object exists. The following example shows how this works:
<cfscript> depts = structnew();</cfscript>
<cfset newStructure=depts>
<cfset depts.John="Sales">
<cfset depts=0>
<cfoutput>
#newStructure.John#<br>
#depts#
</cfoutput>
This example displays the following output:
Sales
0
After the
<cfset depts=0> tag executes, the depts variable does not refer to a structure; it is a
simple variable with the value 0. However, the variable newStructure still refers to the original
structure object.