在Delphi 7中,如何在Format函数中转义百分号(%)?

时间:2008-11-06 02:33:41

标签: delphi format escaping delphi-7

我想做这样的事情:

SQL.Text := Format('select foo from bar where baz like ''%s%''',[SearchTerm]);

但格式当然不喜欢最后的'%'。那我该怎么逃避呢? \%%%

或者我必须这样做:

SQL.Text := Format('select foo from bar where baz like ''%s''',[SearchTerm+'%']);

4 个答案:

答案 0 :(得分:29)

在格式字符串中使用另一个%:

SQL.Text := Format('select foo from bar where baz like ''%s%%''',[SearchTerm]);

答案 1 :(得分:6)

%%,IIRC。

答案 2 :(得分:4)

强制性: http://xkcd.com/327/ : - )

根据上下文,您的方法可能容易受到SQL注入攻击。如果搜索词来自用户输入,那么使用参数化查询或者至少尝试清理输入可能会更好。

答案 3 :(得分:0)

添加2%的符号以获得1个单% 示例:

 Format('select foo from bar where baz like ''%%%s%%'',[SearchString])

给你

select foo from bar where baz like '%SearchString%'