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