在ColdFusion中具有数字名称的列上的QuerySetCell

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'.如果要返回多行,则需要设置每一行.