私の関数で数回、次のようなものがあります。
<cffunction name="mergeData">
<cfquery name="myQuery">
SELECT columnName FROM tableName
</cfquery>
<cfquery dbtype="query" name="myOtherQuery">
SELECT columnName FROM myQuery
</cfquery>
</cffunction>
<cfset resulta = mergeData(queryA) />
<cfset resultb = mergeData(queryB) />
<cfset resultc = mergeData(queryC) />
時折、エラーが発生しますThe select column reference [myQuery.columnname] is not found in table [myQuery].
それで、これを引き起こしている可能性があります。どうすれば診断できますか。私はそれがスコーピングの問題である可能性があると考えていたので<cfquery name="local.myQuery">
、関数に含まれていることを確認するためだけに追加します (とにかくそうする必要があります)。しかし、何かが時々起こるとき、私は診断方法を理解するのに苦労します.
編集:スコープの問題である可能性が最も高い理由を明確にしました。私の考えではmyQuery
、他の呼び出しで参照されている可能性があります。つまり、データに対して複数のスレッドを実行しているわけではありませんが、それが原因である可能性はありますか? 他に原因はありますか?エラーが発生した場合、これは常に当てはまるとは限りません。また、機能が一度しか実行されないページでも取得します。