Coldfusion cfquery name属性,可选?
cfquery的name属性是可选的吗?医生说这是必需的,但我的代码似乎运行良好,即使没有它。如果未定义,是否有默认值?如果是这样的话,我是应该忽略它还是安全地忽略它Coldfusion cfquery name属性,可选?,coldfusion,cfquery,Coldfusion,Cfquery,cfquery的name属性是可选的吗?医生说这是必需的,但我的代码似乎运行良好,即使没有它。如果未定义,是否有默认值?如果是这样的话,我是应该忽略它还是安全地忽略它 Thxname属性是必需的,但我刚刚测试了它&如果name属性丢失,它不会抛出错误。。。真有趣。但是,如果没有name属性,您将如何获得结果集 多有趣的问题啊 更新 只是做了一个快速测试并在谷歌上搜索了一下: <cfquery datasource="#dsn#" result="qresult"> select s
Thxname属性是必需的,但我刚刚测试了它&如果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,他们说这是正常的,因为向后兼容的原因,所以就这样。哦,是的。我了解向后兼容性。它显然已经存在了一段时间。但我还是不喜欢,感觉不对;