Cfquery name属性,可选



cfquery的name属性是否可选?医生说这是必需的,但我的代码似乎运行良好,即使没有它。如果没有定义,是否存在默认值?如果是的话,我应该局部改变它还是安全地忽略它?

Thx

我认为您可以安全地省略name。它似乎没有向变量或局部作用域添加默认的name

然而,我确实注意到CF9下的一些奇怪的东西。如果不本地设置result作用域,则将cfquery.executiontime键添加到variables作用域。这是在禁用所有调试的情况下(除非我错过了什么)。

Results:
Before  Variables = 1 Local = 1
After   Variables = 2 Local = 1   (result NOT local scoped)

<cffunction name="myFunction" output="true">
    <b>Before</b>
    Variables = #structCount(variables)#
    Local = #structCount(local)#<br />
    <cfquery datasource="MyDatasource">
        SELECT getDate() AS TestDate
    </cfquery>
    <b>After</b>
    Variables = #structCount(variables)#
    Local = #structCount(local)#<br />
</cffunction>

name属性是必需的,但我只是测试了它&如果缺少name属性,它不会抛出错误……真有意思。但是,如果没有name属性,您将如何获得结果集呢?

这是个有趣的问题。

只是做了一个快速测试,并做了一些谷歌搜索:

<cfquery  datasource="#dsn#" result="qresult">
select some_stuff from that_table limit a_bunch
</cfquery>
<cfdump var="#qresult#" />

转储result属性清楚地表明查询已经运行并且确实获得了结果集——尽管似乎没有办法访问它。谷歌,文档对默认值或范围没有帮助。也许ping这些家伙:http://www.bennadel.com/-我在他们的网站上遇到了很多"实验"。

现在文档确实说name属性是必需的,但我想我可以看到它可能不是必要的情况-显然内存不被name变量使用,但是结果集呢?所以我猜如果你运行任何查询,你实际上不需要信息从它返回[任何东西,但一个选择?你可以得到所有的信息,你需要使用的结果属性,也许节省一些内存和执行时间?

这不是一个有趣的想法吗?

肖恩

相关内容

  • 没有找到相关文章

最新更新