bunun gibi şeyler için Evaluate()
kullanmayın! Yavaş ve should be avoided.
<cfloop index="i" from="1" to="4">
<cfset foo = query["foo" & i][query.CurrentRow]>
</cfloop>
Veya, eğer isterseniz:
<cfloop index="i" from="1" to="4">
<cfset foo = query["foo#i#"][query.CurrentRow]>
</cfloop>
Evaluate()
kod bitlerini değerlendirmek içindir. Dile entegre, daha uygun şekillerde daha zarif bir şekilde çözülebilen şeyler için kullanmayın.
DÜZENLEME:
Sorgu erişen "açılı ayraç" -Sözdizimi nesneleri yaparken (1 tabanlı) sıralı sayı endeksi (query["foo#i#"][RowNum]
) eklemek gerekir. Geleneksel "dot" -syntax (query.foo1
) kullanıldığında, geçerli satır gizlidir.
Geçerli satıra açıkça erişmek için QueryObject.CurrentRow
özelliğini kullanın. Ancak QueryObject.RecordCount
'a kadar herhangi bir pozitif tam sayı olabilir. CurrentRow
'dan başka bir şey için bir aralık kontrolü önerilir.
Bu ilginç bir alan açar: "Rasgele erişim" ile sorgu nesnelerini kullanmaya başlayabilirsiniz. Önceden (CFMX'ten önce) yapabileceğiniz tek şey, aradığınız şeyleri ortaya çıkarmak için onları baştan sona itebiliyordu. Artık farklı şekillerde kullanabileceğiniz iç içe geçmiş bir yapı/dizi veri yapısı gibi.
Ne yazık ki, bu çalışmaların hiçbiri - ColdFusion bana "foo1 değeri bir sayıya dönüştürülemez" diyor. – ClairelyClaire
Oh, anlıyorum. Bekleyin, açılı ayraç sözdizimi ile sorgu satırları adresleme hakkında biraz yakalamak var. – Tomalak
Bağlandığınız belgelerde bunu görmüyorum - herhangi bir öneriniz var mı? – ClairelyClaire