В Delphi 7, как мне избежать знака процента ( % ) в функции Format?

Я хочу сделать что-то вроде этого:

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 ответов


используйте другой % в строке формата:

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

%%, IIRC.


обязательное: http://xkcd.com/327/ :-)

в зависимости от контекста, ваш подход может быть уязвим к SQL-инъекции. Если поисковый запрос исходит от пользовательского ввода, вероятно, лучше использовать параметризованный запрос или, по крайней мере, попытаться санировать ввод.


добавить 2% знак, чтобы иметь 1 %
Пример :

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

дает

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