我有一个查询,我像我想要的方式调用列,我无法使用查询的ColumnList,因为它按字母排序列,另一件事我需要获得查询的特定行,并在结构及其相关栏目:用SQL查询中调用列的方式返回查询行
因此,这里是我的功能,我试图把列的方式,我想:
<cffunction name="rowToStruct" access="public" returntype="struct" output="false">
<cfargument name="queryObj" type="query" required="true" />
<cfargument name="row" type="numeric" required="true" />
<cfset var returnStruct = structNew()>
<cfset var colname = "">
<cfset arguments.queryObj = arrayToList(arguments.queryObj.getMeta().getColumnLabels())>
<cfloop list="#arguments.queryObj#" index="colname">
<cfset "returnStruct.#colname#" = arguments.queryObj[colname][arguments.row]>
</cfloop>
<cfreturn returnStruct/>
</cffunction>
上述变更前
功能如下:
<cffunction name="rowToStruct" access="public" returntype="struct" output="false">
<cfargument name="queryObj" type="query" required="true" />
<cfargument name="row" type="numeric" required="true" />
<cfset var returnStruct = structNew()>
<cfset var colname = "">
<cfloop list="#arguments.queryObj.columnList#" index="colname">
<cfset "returnStruct.#colname#" = arguments.queryObj[colname][arguments.row]>
</cfloop>
<cfreturn returnStruct/>
</cffunction>
矿井上方一个是给我的错误:
您试图取消引用类型类java.lang.String作为其成员的结构的标量变量。
最后,返回的结构具有按字母顺序排列的键。那么,按照原始顺序获取列表会有什么用? – Beginner