Оценить функцию - PullRequest
       6

Оценить функцию

6 голосов
/ 06 января 2010

Есть ли лучший способ написать следующее?

<cfloop list="#qry.Columnlist#" index="FieldName">
   <cfset "form.#FieldName#" = Evaluate("qry.#FieldName#")>
</cfloop>

Этот цикл назначает каждое поле в запросе соответствующему полю формы. Я понимаю, что функция оценки избегается.

Ответы [ 3 ]

11 голосов
/ 06 января 2010
<cfloop list="#qry.Columnlist#" index="FieldName">
    <cfset form[FieldName] = qry[FieldName][1]>
</cfloop>

4 голосов
/ 06 января 2010

Если вы возвращаете один набор записей, сработает следующее.

<cfloop list="#qry.Columnlist#" index="FieldName">
<cfset "form.#FieldName#" = qry[FieldName][1]>
</cfloop>
1 голос
/ 14 января 2010

Тангенциальный, но если вы зацикливались на нескольких строках запроса, вы могли бы использовать переменную currentRow в объекте запроса, чтобы сделать то же самое, что и принятый ответ.

<cfset var someStruct = {} />
<cfset var colummnList = queryObj.columnList />

<cfloop query="queryObj">
    <cfset someStruct[currentRow] = {} />        

    <cfloop list="#columnList#" index="fieldName">
        <cfset someStruct[currentRow][fieldName] = queryObj[fieldName][currentRow] />
    </cfloop>
</cfloop>
...