Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум на Исходниках.RU > Delphi: Общие вопросы > Форматирование строки


Автор: DemonXpPro 05.05.18, 22:46
Ночи доброй всем.
Никак не могу найти ответа на нужный мне вопрос, а именно:
Есть текстовый файл, в котором прописан SQL запрос, в нем применяю '%s', '%d', '%n'.
После загрузки файла передаю нужные мне параметры через Format().
Но тут незадача, в моем SQL запросе используется следующего вида строка LIKE '%ПАРАМЕТРЫ%' соответственно в файле получается вот так LIKE '%%s%'.
И после подстановки параметров через Format, на выходе получаю некорректную для меня строку - "LIKE '%s".
Как можно подставить символ процента так, чтобы функция Format этот символ не трогала?

Добавлено
Нашел временный выход, но меня он не устраивает, нужно чтобы загрузка происходила из файла без добавления дополнительных символов в коде
SQL текстовый файл:
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
    SELECT id FROM category WHERE name LIKE '%s'

Форматирование, передача параметра
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
    sQuery := Format(GetSQLQuery(SQL_CATEGORY_ID_BY_NAME), ['%' + CategoryName + '%']);

На выходе получается:
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
    SELECT id FROM category WHERE name LIKE '%CategoryName%'

Автор: Gonarh 06.05.18, 05:02
Чёт ничо не понял, если у тебя запрос вида
SELECT id FROM category WHERE name LIKE '%ПАРАМЕТРЫ%'
В текстовике сделай
SELECT id FROM category WHERE name LIKE '%%%s%%'

Автор: Bas 06.05.18, 20:10
Регулярные выражения SQL - может и помогут. Структура данных мне не понята
Цитата DemonXpPro @
через Format().
Версия какая?

Автор: DemonXpPro 07.05.18, 09:37
Вопрос решен.
Спасибо Gonarh, это как раз то, что меня и интересовало.

Powered by Invision Power Board (https://www.invisionboard.com)
© Invision Power Services (https://www.invisionpower.com)