Coldfusion 将查询用作CFF函数的参数

Coldfusion 将查询用作CFF函数的参数,coldfusion,cffunction,Coldfusion,Cffunction,我想将查询作为参数传递给函数 根据,可以将查询指定为参数类型 但是,当我尝试这样做时: <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 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>

我对CF非常陌生,我使用CF MX 7

我发布的问题版本实际上不是源文件中函数的副本。源代码中的函数实际上有一些标记,第一个标记是name=select,被注释掉了


我这样评论它们:这在我的语法highlighter中触发了适当的响应,但ColdFusion仍在尝试执行这些行

看起来CF正在调用另一个函数,而不是您发布的函数,因为您发布的函数没有。这可能是因为缓存和以前的phonebookQuery有一个SELECT param?Off主题,但如果您可以升级到9+版本或Lucee,您将处于一个更好的位置。然后,您可以让ColdFusion为您构建JSON。我知道你可能没有这个选择。我同意@Henry。您发布的代码不是出错的代码。@Henry实际上有一个旧版本的函数使用了名为select的参数。也许是这样。我得等到明天上班才能知道。OT:cfset标签不需要关闭。看起来打字错误ColdFusion仍在尝试执行这些行是的。这个很高兴你明白了,但下次。。请发布引发错误的实际代码:
The parameter SELECT to function phonebookQuery is required but was not passed in.