В Delphi 7, как мне избежать знака процента (%) в функции Format?
Вопрос
Я хочу сделать что-то вроде этого:
SQL.Text := Format('select foo from bar where baz like ''%s%''',[SearchTerm]);
Но 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]);
Другие советы
%% , 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%'
Не связан с StackOverflow