cfquery name属性,可选吗?

时间:2011-07-27 00:25:26

标签: coldfusion cfquery

cfquery的name属性是可选的吗?该文档称这是必需的,但即使没有它,我的代码似乎运行良好。如果没有定义,是否有默认值?如果是这样,我应该对其进行局部变更或安全地忽略它吗?

THX

2 个答案:

答案 0 :(得分:2)

我认为您可以安全地省略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>

答案 1 :(得分:1)

名称属性是必需的,但我刚测试了它&amp;如果缺少name属性,它不会抛出错误...非常有趣。但是,如果没有name属性 - 你将如何获得结果集?

这是一个多么有趣的问题。

<强>更新

刚刚进行了快速测试并进行了一些谷歌搜索:

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

<cfdump var="#qresult#" />

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

现在文档确实说name属性是必需的,但我想我可以看到可能没有必要的情况 - 很明显,name变量不使用内存,但结果集怎么样?所以我猜你是否运行任何查询,你实际上不需要从它那里获取信息[除了选择之外什么?]你可以通过使用结果属性获得所需的所有信息并且MAYBE可以节省一些内存和执行时间吗?

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

-Sean