ColdFusion对象到字符串

时间:2014-06-13 13:18:37

标签: coldfusion railo

我是ColdFusion的新手,我正试图从数据库中提取数据并将其发送到我创建的电子邮件功能。

myQry = new Query();
myQry.setSQL("select * from stocknotifications LEFT JOIN options ON stocknotifications.stocknotification_id = options.option_id  ORDER BY stocknotification_id DESC LIMIT 1 "); //set query


qryRes = myQry.execute();

writedump(qryRes.getResult(), false);

Mail = variables.NotificationService.newMail();
Mail.setTo("bfrench@destinationcms.co.uk");
Mail.setSubject( "New Stock Request" );

// render body with layout which uses the rc.emailView
Mail.setBody(ToString(qryRes.getResult()));
variables.NotificationService.sendMail( Mail );

我的writeDump()工作并显示表格中的最后一项。唯一的问题是我不能将它传递给setBody()而不会抛出错误。

  

无法将复杂对象类型查询转换为字符串   使用内置函数“serialize(Query):String”从查询

创建字符串

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

根据您收到的错误消息,您实际上可以使用序列化替换toString,并且您可以继续使用。

如果你想要的只是数据发送电子邮件而不关心演示文稿,快速和肮脏,你可能想尝试SerializeJSON();它会将query转换为JSON字符串COLUMNSDATA

Mail.setBody(SerializeJSON(qryRes.getResult()));

答案 1 :(得分:1)

最简单的方法是使用cfsavecontent。我不确定是否有这样的脚本版本,所以我将向您展示如何使用标签。您已经有一个名为qryRes的查询结果。

<cfsavecontent variable = "eMailBody">
<cfoutput query = "qryRes">
#field1#, #field2# etc
</cfoutput>
</cfsavecontent>

然后对于邮件功能,您可以这样做:

mail.setBody(emailBody);

如果您想以html格式发送电子邮件,请在cfsavecontent块中放入相应的html标记。否则,请注意源代码的carraige返回。它们包含在cfsavecontent生成的变量中。对于上面的代码示例,您将在正文顶部获得3个空行,数据行将是双倍行距。