2

私がやろうとしていることは

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

4

2 に答える 2

10

これを行うために使用evaluate()する必要はありませんし、使用すべきではありません(そのため、その回答に反対票を投じました。申し訳ありません)。

必要なのは、連想配列表記を使用することだけです。

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

そのクエリの列にアクセスしたい場合は、次のようになります。

#local[qname][columnName]#

そして特定のセルの場合:

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

evaluate()何かに対する正解である状況はごくわずかです。残念ながら、Adobeのドキュメントの多くは、経験豊富なColdFusion開発者によって作成されたものではないため、Adobeのドキュメントに頼ることはできません。

于 2012-10-16T18:53:42.490 に答える
0

クエリをダンプできます。また、次のような方法でアクセスすることもできます。

<cfloop list="q1,q2,q3" index="qname">


    <cfquery name="#qname#" datasource="dsn">
        SELECT * from some_table;
    </cfquery>

    <cfdump var="#Evaluate('#qname#')#" />
</cfloop>

評価機能は、あなたが望むことを可能にするものです。

于 2012-10-16T17:43:33.763 に答える