coldfusion coldfusion-9 cfquery

¿Es posible tener nombres de consulta generados dinámicamente en ColdFusion?



coldfusion-9 cfquery (2)

No hay necesidad de usar evaluate() para hacer esto, y uno no debería (así que he votado negativamente esa respuesta, lo siento).

Todo lo que necesita hacer es usar notación de matriz asociativa:

<cfdump var="#local[qname]#">

Si uno quiere acceder a una columna de esa consulta, es:

#local[qname][columnName]#

Y para una celda específica:

#local[qname][columnName][rowNumber]#

Hay muy pocas situaciones en las que evaluate() es la respuesta correcta a cualquier cosa. No se puede confiar en los documentos de Adobe porque, desafortunadamente, muchos de los desarrolladores de ColdFusion no los escribieron mucho.

Lo que intento hacer es

<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>

¿Es esto posible, o hay una mejor manera de hacerlo?

Editar

Esto funciona con <cfloop query="LOCAL.queryName"> pero no cuando intento hacer <cfset ArrayAppend(LOCAL.returnArray, LOCAL.queryName.c) />


Puedes volcar la consulta, e imagino también acceder haciendo algo como esto:

<cfloop list="q1,q2,q3" index="qname"> <cfquery name="#qname#" datasource="dsn"> SELECT * from some_table; </cfquery> <cfdump var="#Evaluate(''#qname#'')#" /> </cfloop>

La función Evaluar es lo que le permite hacer lo que desea.