我在表中有一组列名 - 例如foo1,foo2,foo3,foo4.我想通过循环动态引用这些列名:
以上不起作用 - ColdFusion抛出"变量未定义"错误,即使query.foo1是对查询结果的有效引用.我怎么能这样做?
不要Evaluate()
用于那样的东西!它很慢,应该避免.
或者,如果你喜欢:
Evaluate()
用于评估代码位.不要将它用于可以通过语言集成,更合适的方式更优雅地解决的问题.
编辑:
使用"尖括号"-syntax访问Query对象时,必须附加(从1开始)行号索引(query["foo#i#"][RowNum]
).使用传统的"dot"-syntax(query.foo1
)时,当前行是隐式的.
要显式访问当前行,请使用该QueryObject.CurrentRow
属性.但它可能是任何正整数QueryObject.RecordCount
.除了之外,建议进行范围检查CurrentRow
.
这将打开一个有趣的字段:您可以开始使用"随机访问"查询对象.以前(在CFMX之前)你所能做的就是从头到尾迭代它们,拉出你要找的东西.现在它就像一个嵌套的结构/数组数据结构,您可以以不同的方式使用它.