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

StackOverflow https://stackoverflow.com/questions/267487

Вопрос

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

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%'
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top