Coldfusion cfquery name属性,可选?

Coldfusion cfquery name属性,可选?,coldfusion,cfquery,Coldfusion,Cfquery,cfquery的name属性是可选的吗?医生说这是必需的,但我的代码似乎运行良好,即使没有它。如果未定义,是否有默认值?如果是这样的话,我是应该忽略它还是安全地忽略它 Thxname属性是必需的,但我刚刚测试了它&如果name属性丢失,它不会抛出错误。。。真有趣。但是,如果没有name属性,您将如何获得结果集 多有趣的问题啊 更新 只是做了一个快速测试并在谷歌上搜索了一下: <cfquery datasource="#dsn#" result="qresult"> select s

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


Thx

name属性是必需的,但我刚刚测试了它&如果name属性丢失,它不会抛出错误。。。真有趣。但是,如果没有name属性,您将如何获得结果集

多有趣的问题啊

更新

只是做了一个快速测试并在谷歌上搜索了一下:

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

<cfdump var="#qresult#" />
转储result属性清楚地表明查询已经运行并且确实获得了一个结果集——尽管似乎没有办法访问它。 Google和docs对默认设置或范围没有帮助。。我在他们的网站上遇到了很多“实验”

现在,文档确实说name属性是必需的,但我想我可以看到一些情况,在这些情况下可能不需要name属性——显然,name变量不在内存中,但是结果集呢?所以我猜,如果你运行的任何查询实际上不需要从中返回信息[除了select之外的任何东西],你可以通过使用result属性获得你需要的所有信息,也许可以节省一些内存和执行时间

这不是一个有趣的想法吗


-肖恩

我想你完全可以省略这个名字。它似乎没有向变量或局部作用域添加默认名称

然而,我确实注意到CF9中有一些奇怪的地方。如果不在结果的局部范围内,则会将键cfquery.executiontime添加到变量范围内。这是与所有调试禁用,除非我错过了一些东西

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>

我见过不返回结果集INSERT/UPDATE/DELETE的查询没有名称属性。我不认为它必然会节省任何内存,但它确实会节省打字时间:如果它确实节省内存,那将是微不足道的,但我想这将取决于你的应用程序的负载是否对你有利。。。事实上,我只是不知道。我想我在几年前联系过Adobe,他们说这是正常的,因为向后兼容的原因,所以就这样。哦,是的。我了解向后兼容性。它显然已经存在了一段时间。但我还是不喜欢,感觉不对;