Sul*_*han 4 coldfusion coldfusion-9
我试图使用以下代码获取错误循环数据库的表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>
Run Code Online (Sandbox Code Playgroud)
您收到该错误,因为cfloop collection需要一个结构,而不是查询对象.因此"UnsupportedOperation ..."错误.
相反,您应该使用查询循环.生成的列名称是动态的,基于您提供的数据库名称.您可以硬编码或动态访问它:
<cfset colNames = listToArray(q.columnList)>
<cfoutput query="q">
<cfloop array="#colName#" index="col">
#q[col][currentRow]#
</cfloop>
<br>
</cfoutput>
Run Code Online (Sandbox Code Playgroud)
也就是说,我发现使用元数据INFORMATION_SCHEMA视图更容易.您可以像任何表一样查询它们.然后像往常一样输出静态列名.
<cfquery name="yourQueryName" ...>
SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'YourDatabaseName'
</cfquery>
<cfoutput query="yourQueryName">
#TABLE_NAME# <br>
</cfoutput>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1392 次 |
| 最近记录: |