如何获取用于生成cfquery对象的SQL?如果我cfdump该对象,它显示它具有"SQL"属性,其中包含实际查询.打开调试对我没有帮助,因为我正在进行API调用,因此输出不是HTML,调试信息会破坏它.我只是想调试正在执行的查询.
<cfquery name="tableElements" datasource="TestSQLServer">
SELECT * FROM tableElements
</cfquery>
<cfdump var="#tableElements#" /> <!--- Shows object having "SQL" property --->
<cfoutput>SQL: #tableElements.SQL#</cfoutput> <!--- Error: Element SQL is undefined in TABLEELEMENTS. --->
Run Code Online (Sandbox Code Playgroud)
Tod*_*arp 30
在cfquery中添加"结果"属性.SQL位于结果结构中,而不是查询变量中.
Ada*_*tle 19
<cfquery name="tableElements" datasource="TestSQLServer" result="r">
SELECT * FROM tableElements
</cfquery>
<cfdump var="#tableElements#" /> <!--- Shows object having "SQL" property --->
<cfoutput>SQL: #r.SQL#</cfoutput>
Run Code Online (Sandbox Code Playgroud)
我个人喜欢有一些SQL,其中插入了所有参数(而不是?问号).这样我就可以复制并粘贴SQL来对数据库运行查询.为此,我得到一个结果(如其他注释中所述),然后使用此函数...
<cffunction name="getRealSQL" returntype="string">
<cfargument name="qryResult" type="any">
<cfset realSQL = arguments.qryResult.sql>
<cfloop array="#arguments.qryResult.sqlParameters#" index="a">
<cfscript>
if (NOT isNumeric(a)) a = "'#a#'";
realSQL = Replace(realSQL, "?", a);
</cfscript>
</cfloop>
<cfreturn realSQL>
</cffunction>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
24045 次 |
| 最近记录: |