【发布时间】:2012-06-11 19:41:09
【问题描述】:
我想在 LIKE 运算符模式中使用命名参数占位符,以便正确转义参数字符串。
这是我使用 at-param 占位符的修改代码:
var stmt = new air.SQLStatement();
stmt.text = "SELECT * FROM cmets WHERE title LIKE '%@search%';";
stmt.parameters["@search"] = "参数字符串";
stmt.execute();
这样做会产生带有以下详细信息的 SQLError
消息:错误 #3315:SQL 错误。
详细信息:在参数属性中找到“@search”参数名称,但不在指定的 SQL 中
按照 Mike Petty 的建议,我尝试了:
stmt.text = 'SELECT * FROM cmets WHERE title LIKE "@%search%";';
这会产生相同的 SQL 错误详细信息。
文档有这个:
expr ::= (column-name | expr) LIKE 模式
模式 ::= '[ 字符串 | % | _]'
我怀疑它是由于 qoutes 而被跳过的,关于如何使它工作的任何想法?
【问题讨论】: