В 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]);
обязательное: 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%'