Using a query column
When you are not inside a
treat a query column as an array. However, query column references do not always behave as you
might expect. This section explains the behavior of references to query columns using the results
of the following
<cfquery dataSource="CompanyInfo" name="myQuery">
SELECT FirstName, LastName
FROM Employee
</cfquery>
To reference elements in a query column, use the row number as an array index. For example,
both of the following lines display the word "ben":
<cfoutput> #myQuery.Firstname[1]# </cfoutput><br>
<cfoutput> #myQuery["Firstname"][1]# </cfoutput><br>
ColdFusion behavior is less straightforward, however, when you use the query column references
myQuery.Firstname and myQuery["Firstname"] without using an array index. The two reference
formats produce different results.
If you refer to myQuery.Firstname, ColdFusion automatically converts it to the first row in the
column. For example, the following lines print the word "ben":
<cfset myCol = myQuery.Firstname >
<cfoutput>#mycol#</cfoutput>
But the following lines display an error message:
<cfset myCol = myQuery.Firstname >
<cfoutput>#mycol[1]#</cfoutput><br>
If you refer to
Query["Firstname"]
row of the column. For example, the following line results in an error message indicating that
ColdFusion cannot convert a complex type to a simple value:
<cfoutput> #myQuery['Firstname']# </cfoutput><br>
Similarly, the following lines print the name "marjorie", the value of the second row in the
column:
<cfset myCol = myQuery["Firstname"]>
<cfoutput>#mycol[2]#</cfoutput><br>
However, when you make an assignment that requires a simple value, ColdFusion automatically
converts the query column to the value of the first row. For example, the following lines display
the name "ben" twice:
<cfoutput> #myQuery.Firstname# </cfoutput><br>
<cfset myVar= myQuery['Firstname']>
<cfoutput> #myVar# </cfoutput><br>
Using periods in variable references
ColdFusion uses the period (.) to separate elements of a complex variable such as a structure,
query, XML document object, or external object, as in MyStruct.KeyName. A period also
separates a variable scope identifier from the variable name, as in Variables.myVariable or
CGI.HTTP_COOKIE.
64
Chapter 3: Using ColdFusion Variables
,
cfloop
cfoutput
tag in its examples:
cfquery
, ColdFusion does not automatically convert it to the first
, or
tag that has a
cfmail
attribute, you can
query
Need help?
Do you have a question about the COLDFUSION MX 61-DEVELOPING COLDFUSION MX and is the answer not in the manual?
Questions and answers