更新:对这个答案不满意,但是我发现不传递参数结构将导致CF2016忽略冒号。看起来CF2018两种方式都没有问题(尽管目前我只能用查询查询来测试)。
我们生成了不使用通过QueryExecute()
进行查询的参数的sql查询。有时我会看到错误在参数前缀':'之后不允许空格,并发现它是由带有冒号和空格的字符串文字引起的。例如:
select 'test this: error'
我找不到逃脱结肠的官方方法,普通的逃脱方法也行不通,但找出了解决方法...
sqlstring = replace(sqlstring, ": ", ":'+' ", "all")
但是,这并不能解决可能出现的其他情况,这些情况不是字符串文字,例如带有冒号和空格的列名,而且可能还有我现在想不到的更多情况。
>是否有逃脱传递给QueryExecute
而不是queryparam
的冒号的官方方法?
答案 0 :(得分:0)
我想您可以将字符串分离出来并传递进来
result = QueryExecute("
SELECT :mystring AS ...
",
{ mystring : "test this: error"}
);
不过似乎需要做很多工作。