Все существующие ответы / комментарии, похоже, касаются разных аспектов, поэтому это попытка объединить всю эту информацию в одно четкое объяснение.
(Этот ответ задан для сообщества вики - отредактируйте его соответствующим образом.)
Чтобы получить доступ к переменной из запроса, используйте:
QueryName.ColumnName[RowNum]
QueryName["ColumnName"][RowNum]
Они оба будут работать в любой момент после создания запроса.
Оба могут использоваться внутри cfoutput
для отображения переменной или внутри cfset
для назначения переменной.
Второй полезен для динамических переменных и может принимать переменные следующим образом:
QueryName[DynamicColumnName][RowNum]
QueryName["Partial#DynamicName#"][RowNum]
QueryName["Partial"&DynamicName][RowNum]
Для удобства вместо ручного выполнения запроса:
<cfloop index="CurrentRow" from="1" to="#QueryName.RecordCount#">
<cfoutput>#QueryName.ColumnName[CurrentRow]#</cfoutput>
</cfloop>
Вы можете просто сделать:
<cfloop query="QueryName">
<cfoutput>#QueryName.ColumnName[CurrentRow]#</cfoutput>
</cfloop>
И в качестве дальнейшего ярлыка вы можете сделать:
<cfoutput query="QueryName">
#QueryName.ColumnName[CurrentRow]#
</cfoutput>
А если внутри <cfloop query="">
или <cfoutput query="">
вы можете просто сделать:
<cfoutput query="QueryName">
#ColumnName#
</cfoutput>
Однако этот последний ярлык предназначен только для отображения - если вы сделаете:
<cfset ColumnName = "NewValue" />
Это не изменит исходные данные запроса. Вместо этого вам нужно сделать:
<cfset QueryName.ColumnName[CurrentRow] = "NewValue" />
И это изменит результаты запроса (но не значение в базе данных).
Чтобы отобразить фактический запрос SQL, который был запущен, с CF8 (также Railo и OpenBD), вы можете сделать:
<cfdump var="#QueryName#"/>
И он покажет вам как результаты запроса, так и фактический SQL, который был выполнен.
Чтобы отобразить фактический SQL с CF7, вам нужно добавить result="QueryInfo"
к вашему тегу cfquery
, тогда <cfdump var="#QueryInfo#"/>
покажет вам SQL.