В 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+'%']);

?

Ответы

Ответ 1

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

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

Ответ 2

%%, IIRC.

Ответ 3

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

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

Ответ 4

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

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

Дает вам

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