数回は、私はこのようなものを持っている:Varスコープの問題がありますか?私の機能で
<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">
を追加します(これはおそらくこれを実行しているはずです)。しかし、時には何かが起こるだけで私は診断する方法を考え出すのが難しいです。
EDIT:なぜスコープ上の問題が発生するのかを明確にしました。私の考えは、myQuery
が他の呼び出しで参照されている可能性が高いということです。つまり、データに複数のスレッドを実行しているようなものではありませんが、それが原因である可能性はありますか?他の原因はありますか?これはエラーが発生した場合に必ずしも当てはまるわけではありません。私はまた、それが機能するページ上で一度だけ実行しています。
私はローカルスコープですべての機能に固有の変数名を作り、エラーはなくなりました。 (少なくとも過去5時間以内に)それが問題だったことを意味することを願っています。 – Leeish