如果没有返回数据,请检查查询结果

时间:2011-06-16 23:18:45

标签: coldfusion coldfusion-9

我有一个查询,我打电话来更新电子邮件服务。大多数情况下它会有数据,但在测试中我遇到的情况是它没有返回任何数据,因为没有数据要返回。在没有数据的情况下,它返回错误“变量EDITEDACCTS未定义”。

我尝试在<cftry>中包装查询,但它本身并没有“失败”,所以它不会使<cfcatch>跳闸。我也尝试过定义变量

var EditedAccts = QueryNew("")

以及简单地尝试

<cfif NOT isDefined(#EditedAccts#)>

并且它始终返回“变量EDITEDACCTS未定义” 我需要一个生产就绪的解决方案,我希望在这里的某个地方可以帮助我。

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:3)

我刚刚找到答案。在查询调用中设置“result”参数,然后可以检查返回的recordcount字段。

<cfquery name="EditedAccts" datasource="mydatasource" result="queryResult">
    ...query goes here...
</cfquery>

使用“result”参数时,您将获得一个返回的结构,其中包含使用的sql,缓存设置,执行时间和记录计数。 现在我可以查看记录计数并从那里继续。

希望这将有助于将来的某些人。

答案 1 :(得分:0)

我尝试使用result =“queryResult”但是当我尝试引用查询名称时,我得到类似这样的错误 - “属性查询的值,当前是EditedAccts,无效”。相反,我使用了像IsDefined(“#EditedAccts#”)这样的东西 - 包括引号中的值对我来说是个窍门。我只是ColdFusion的新手,但我很快就会知道,在函数如何解释参数方面,引号中的值与引号中的值完全不同。