Domanda

C'è un modo migliore per scrivere la seguente?

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

Questo ciclo consiste nell'assegnare ogni campo nella query ad un corrispondente campo di modulo. Capisco la funzione di valutare è evitato.

È stato utile?

Soluzione

<cfloop list="#qry.Columnlist#" index="FieldName">
    <cfset form[FieldName] = qry[FieldName][1]>
</cfloop>

Altri suggerimenti

Supponendo che si restituisce un singolo set di record di seguito funzionerà.

<cfloop list="#qry.Columnlist#" index="FieldName">
<cfset "form.#FieldName#" = qry[FieldName][1]>
</cfloop>

tangenziale, ma se si dovesse ciclare su più righe di una query, è possibile utilizzare la variabile currentRow nell'oggetto query per fare la stessa cosa come la risposta accettata.

<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>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top