我试图使用以下代码循环数据库的表,但出现错误java.lang.UnsupportedOperationException
。我什至尝试过cfloop query and other attributes
出现错误复杂值无法转换为简单值。谁能告诉我我该如何循环这个查询?谢谢。
<cfquery name="q" datasource="datasource">
SHOW TABLES FROM datasource
</cfquery>
<cfloop collection ="#q#" item="i">
#q[i]#
</cfloop>
您收到该错误是因为 cfloopcollection
需要一个结构,而不是查询对象。因此出现“不支持的操作...”错误。
相反,您应该使用查询循环。生成的列名称是动态的,基于您提供的数据库名称。您可以对其进行硬编码或动态访问:
<cfset colNames = listToArray(q.columnList)>
<cfoutput query="q">
<cfloop array="#colName#" index="col">
#q[col][currentRow]#
</cfloop>
<br>
</cfoutput>
也就是说,我发现使用元数据INFORMATION_SCHEMA views http://dev.mysql.com/doc/refman/5.0/en/tables-table.html。您可以像查询任何表一样查询它们。然后照常输出静态列名。
<cfquery name="yourQueryName" ...>
SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'YourDatabaseName'
</cfquery>
<cfoutput query="yourQueryName">
#TABLE_NAME# <br>
</cfoutput>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)