我想做的是
<cfloop array="#LOCAL.someArray" index="LOCAL.aString">
<cfset LOCAL.queryName = "uniqueQueryName_" & LOCAL.aString />
<cfquery name="#LOCAL.queryName#" datasource="db" cachedwithin="#CreateTimeSpan(1,0,0,0)#">
SELECT count(*) AS c FROM someTable
</cfquery>
<cfdump var="#LOCAL.queryName#" />
</cfloop>
这是可能的,还是有更好的方法呢?
修改
这适用于<cfloop query="LOCAL.queryName">
,但在我尝试执行<cfset ArrayAppend(LOCAL.returnArray, LOCAL.queryName.c) />
答案 0 :(得分:10)
没有必要使用evaluate()
来做这件事,而且不应该这样做(所以我已经对这个答案进行了低估,对不起)。
您需要做的就是使用关联数组表示法:
<cfdump var="#local[qname]#">
如果想要访问该查询的列,则为:
#local[qname][columnName]#
对于特定的细胞:
#local[qname][columnName][rowNumber]#
极少数情况下evaluate()
是对任何事情的正确答案。人们不能依赖Adobe文档,因为 - 不幸的是 - 其中很多都不是由非常有经验的ColdFusion开发人员编写的。
答案 1 :(得分:0)
您可以转储查询,我想也可以通过执行以下操作来访问它:
<cfloop list="q1,q2,q3" index="qname">
<cfquery name="#qname#" datasource="dsn">
SELECT * from some_table;
</cfquery>
<cfdump var="#Evaluate('#qname#')#" />
</cfloop>
Evaluate功能可以让你做你想做的事。