使用查询作为 cffunction 的参数

using a query as an argument to a cffunction

我想将查询作为参数传递给函数。

根据 docs 您可以将查询指定为参数类型。

但是,当我尝试这样做时:

<cfquery name="share_types_query" datasource="phonebook">       
    SELECT share_loan_type, share_loan_description
    FROM shareloantypes
    WHERE share_loan='S'
    ORDER BY  share_loan_type
</cfquery>
<cfscript>
    phonebookQuery(share_types_query, "SHARE_TYPES");
</cfscript> 


<!--function to take a query and turn the result into a JSON string-->
<cffunction name="phonebookQuery" access="public" returnType="void">
    <cfargument name="query" type=query required="yes">
    <cfargument name="jsVar" type=string required="yes">

    <cfset json = "[ "/>
    <cfloop query="query">
        <cfset json = json & "{ "/>
        <cfset i=1/>
        <cfloop list="#arrayToList(query.getColumnList())#" index="col">
            <cfset json = json & '"#col#"' & ": "/>
            <cfset json = json & '"' & query[col][currentRow] & '"'/>
            <cfif i lt ListLen(query.columnList)>
                <cfset json = json & ", "/>
            </cfif>
            <cfset i= i+1/>
        </cfloop>
        <cfset json = json & " }"/>
        <cfif currentRow lt recordCount>
            <cfset json = json &","/>
        </cfif>
    </cfloop>
    <cfset json = json & " ]"/>

    <script type="text/javascript">
        <cfoutput>
            var #toScript(json,Arguments.jsVar)#;
        </cfoutput>
    </script>
</cffunction>

我收到以下错误:

The parameter SELECT to function phonebookQuery is required but was not passed in.

我是 CF 的新手,我正在使用 CF MX 7。

我发布的问题版本实际上并不是源文件中函数的副本。源代码中的函数实际上有一些被注释掉的 <cfargument> 标签(第一个是 name="select")。

我是这样评论它们的:<!-- a comment --> 这在我的语法荧光笔中触发了适当的响应,但 ColdFusion 仍在尝试执行这些行。