<cfquery name="writefile" datasource="#dsn#">
SELECT abc,def,pqr,stu,zex
FROM mytable
</cfquery>
<cfoutput>
<table>
<cfloop query="writefile">
<tr>
<cfloop list="#ArrayToList(writefile.getColumnNames())#" index="col">
<cffile action="write" file="d:\test.txt" output="#writefile[col][currentrow]#">
</cfloop>
</tr>
</cfloop>
</table>
</cfoutput>
我正在使用上面的代码使用cffile将文本文件写入某个位置。
但是文本文件不包含查询的所有结果。请指导我。
答案 0 :(得分:10)
使用cffile action="write"每次都会重置文件。
使用action="append"在不先删除文件的情况下将内容添加到文件中。
您还应该考虑首先构建字符串,然后在单个操作中写入文件。
例如:
<cfset Content = "" />
<cfloop query="writefile">
<cfloop array=#writefile.getColumnNames()# index="col">
<cfset Content &= ' ' & writefile[col][currentrow] />
</cfloop>
<cfset Content &= chr(10) />
</cfloop>
<cffile action="write" file="d:\test.txt" output="#FileContent#" />
(注意:字符串连接用于简单 - 如果性能很重要,请考虑使用StringBuilder和/或cfsavecontent。)