Используя запрос в качестве аргумента для функции

Я хотел бы передать запрос в качестве параметра функции.

Согласно документам Вы можете указать запрос в качестве типа аргумента.

Однако, когда я пытаюсь сделать это:

<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.

1 ответ

Решение

Версия вопроса, которую я разместил, на самом деле не была точной копией функции в исходном файле. Функция в источнике фактически имела некоторые <cfargument> теги (первый из которых name="select") that were commented out.

I was commenting them like this: <!-- a comment --> which triggered the appropriate response in my syntax highlighter, but ColdFusion was still trying to execute the lines.

Другие вопросы по тегам