问题:
我有一个sproc,我用两种方式调用它(cfquery和cfstoredproc),然后转储结果集。在这两种情况下,我都传递相同的参数,而sproc为这个测试返回一个微不足道的硬编码结果。当我转储结果时,我可以在cfquery调用中看到实际的查询SQL,而不是在cfstoredproc call.Why中?我想使用cfstoredproc版本,但希望能够像CFQUERY中那样获得转储的SQL属性。
(是的,我知道CF准备陈述的方式有些不同,我想知道到底是什么。)
CF代码:
<cfstoredproc datasource="tc" procedure="sp_dumptest" >
<cfprocparam type="in" dbvarname="@arg1" cfsqltype="CF_SQL_VARCHAR" value="1" >
<!--- Out variable --->
<cfprocresult name="out1">
</cfstoredproc>
<cfdump var="#out1#" label="with cfstoredproc">
<cfquery name="out2" datasource="tc" >
{call sp_dumptest (1) }
</cfquery>
<cfdump var="#out2#" label="with cfquery">输出:

(在亚当回答后编辑)
我尝试添加一个结果属性和一个fetchclientInfo,但是它仍然不能给出实际的SQL。下面是转储结果变量时所转储的内容。
<cfstoredproc datasource="Timecurrent"
procedure="sp_dumptest"
result="rsx"
debug="true"
fetchClientInfo="yes">
<cfprocparam type="in" dbvarname="@arg1" cfsqltype="CF_SQL_VARCHAR" value="1" >
<!--- Out variable --->
<cfprocresult name="out1">
</cfstoredproc>
<cfdump var="#rsx#" label="with cfstoredproc">

Environment:
发布于 2015-11-19 16:03:38
就像戴夫说的:你在比较苹果和橘子。
在第一个示例中,您只是转储由proc返回的out参数的值。你只希望看到里面的价值。
在第二个示例中,您正在转储整个<cfquery>调用的结果,其中包括结果,以及传递给JDBC以及其他各种位元和bob的SQL语句和params。
如果您为<cfstoredproc>调用一个result属性并将that转储出来,会发生什么情况?你不应该期望看到同样的元数据--它仍然是苹果和橘子--但是它更有可能有更多的细节。
https://stackoverflow.com/questions/33807673
复制相似问题