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