如何从回复查询中检查条件?

时间:2012-07-23 20:03:52

标签: sql tsql coldfusion

如果agencyType_ID表中的company为2,我需要密送某人。我该怎么做?到目前为止我已经

<cfquery name="checkAgencyType" datasource="#APPLICATION.primaryDSN#">
    SELECT * FROM company WHERE agencyType_ID=2
</cfquery>

<cfmail>里面我会有

<cfif query=”checkAgencyType”>bcc=”joe@example.com”></cfmail>

编辑:我应该提到我已经让它使用to和cc字段发送邮件,所以我宁愿不重构一堆代码。但大多数回复似乎都不需要这样: - )

3 个答案:

答案 0 :(得分:10)

我会使用属性集合参数。它允许您将属性作为结构传递给标记。这样,您可以定义静态属性,然后动态添加任何其他属性。只要属性键名匹配,它们就会传递给标记。

<cfset args = {
    from = "from@gmail.com",
    to = "to@gmail.com",
    subject = "My Subject",
    type = "HTML"
}>

<cfif checkAgencyType.agencyType_ID EQ 2>
    <cfset args.bcc = "joe@example.com">
</cfif>

<cfmail attributeCollection="#args#">
    content...
</cfmail>

答案 1 :(得分:2)

你走在正确的轨道上,你只想把它设置为一个变量。

<cfset bccaddress = '' />
<cfif checkAgencyType.RecordCount>
  <cfset bccaddress = 'joe@example.com' />
</cfif>

这假定通过在查询中返回记录,您想要添加密件抄送地址。

然后使用<cfmail to="test@address.com" from="test2@address.com" subject="My subject" bcc="#bccaddress#">

将其包含在您的代码中

答案 2 :(得分:2)

您可以使用“内联if”来检查查询结果,如果找到,则设置电子邮件地址。否则,它会将bcc属性设置为空白。

<cfmail
  subject="Subject"
  from="you@example.com"
  to="customer@example.com"
  bcc="#iif(checkAgencyType.recordCount, de('joe@example.com'), de(''))#"
>
  This is a cool message.
</cfmail>