我有一个执行存储过程并返回结果的搜索函数。如果没有结果,我想尝试再次使用更广义的搜索来运行该函数。于是,我把一个CFIF到我的代码 -我的递归方法调用有什么问题?
<cfif results.recordCount EQ 0 And Not arguments.searchForPotentialMatches>
<cfset arguments.searchForPotentialMatches = True />
<cfinvoke method="thisMethod" argumentCollection="#arguments#" />
</cfif>
基本上,如果没有结果,我还没有尝试过通用搜索,它应该再次调用此方法。然后,在该方法的开始,在调用存储过程之前,我检查searchForPotentialMatches是否为true,如果是,则推广搜索查询。
似乎有一个问题,虽然...当我尝试运行这个,它挂起 - 直到有一个存储过程超时。通过调试和输出变量,我已经能够看到它到达存储过程,然后试图执行它。但是,在这些重新运行更改之前使用原始函数,如果我执行常规搜索,然后在2个单独的调用中执行广义搜索,它将正确执行。所以我不确定为什么它失败时,我尝试以编程方式构建这个...我做错了什么?
请发布整个函数调用。问题可能会或可能不在递归调用中。 – 2011-01-13 16:11:29