A.W*_*ack 3 coldfusion coldfusion-8
我正在尝试使用QuerySetCell更改查询对象中特定列的值,并且一直收到此错误:
列名必须是有效的变量名.它们必须以字母开头,并且只能包含字母,数字和下划线.
这个错误的原因,以及这里的复杂性,我试图更新的列有一些整数作为名称,取自单独的记录的键/ ID.例如,查询可能包含三个名称为"6638,6639,6640"的列.
现在,我理解为什么会发生这种错误(虽然不一定是CF有这个限制的原因),但是无法提出解决方法.进一步的复杂性是我无法对初始查询集的列名称进行任何更改,并且需要保留列名称及其在将查询转换为JSON字符串并使用JSONified查询更新结果表时的顺序.
有没有人之前遇到过这个问题,如果是这样的话,你是如何解决这个问题的,或者你是否被迫改变初始查询中列的命名方式?
使用CF8并且能够在从Ajax处理程序返回JSONified查询之后编辑它,如果这有所不同的话.
Sco*_*roz 12
您可以使用括号表示法来设置查询中的值(至少可以在CF9中 - 我没有安装CF8进行测试).
sytax非常简单:
<cfset queryName[columnName][row] = "some new value" />
Run Code Online (Sandbox Code Playgroud)
从您的示例中,您可以使用此:
<cfset myQuery["6638"][1] = "moo" />
Run Code Online (Sandbox Code Playgroud)
这会将第一行中'6638'列的值设置为'moo'.如果要返回多行,则需要设置每一行.