![]() |
|
v7: Прямой запрос: строка содержит | ☑ | ||
---|---|---|---|---|
0
OnePrg
29.12.21
✎
12:20
|
Подскажите есть ли в прямых запросах аналог функции ПОДОБНО как в 1С8?
Нужно выбрать все элементы справочника, в наименовании которых есть заданная строка. |
|||
1
OnePrg
29.12.21
✎
12:22
|
LIKE
|
|||
2
OnePrg
29.12.21
✎
12:28
|
ТекстЗапроса = "
|SELECT | спрТовары.Code as Код, | спрТовары.ID as [Товар $Справочник.Номенклатура] |FROM | $Справочник.Номенклатура as спрТовары |WHERE | спрТовары.Name LIKE `%"+ТекстПоиска+"%`"; Неправильный синтаксис около конструкции "`". Какой символ использовать? |
|||
3
OnePrg
29.12.21
✎
12:31
|
ТекстЗапроса = "
|SELECT | спрТовары.Code as Код, | спрТовары.ID as [Товар $Справочник.Номенклатура] |FROM | $Справочник.Номенклатура as спрТовары |WHERE | спрТовары.Descr LIKE '%"+ТекстПоиска+"%'"; ошибок не выдаёт, но и номенклатуру не ищет |
|||
4
acht
29.12.21
✎
12:33
|
Что будет, если в ТекстПоиска попадется одинарная кавычка или служебный символ LIKE?
|
|||
5
OnePrg
29.12.21
✎
12:35
|
(4) согласен, но вряд ли оператор будет вводить такие симмволы, обычно ограничиваются буквами
|
|||
6
OnePrg
29.12.21
✎
12:35
|
ТекстЗапроса = "
|SELECT | спрТовары.Code as Код, | спрТовары.ID as [Товар $Справочник.Номенклатура] |FROM | $Справочник.Номенклатура as спрТовары |WHERE | спрТовары.Descr LIKE '%"+СокрЛП(ТекстПоиска)+"%' | OR спрТовары.Code LIKE '%"+СокрЛП(ТекстПоиска)+"%'"; работает |
|||
7
acht
29.12.21
✎
12:46
|
(5) > оператор будет вводить
Ты ему еще запрети из буфера обмена текст вставлять, ага. |
|||
8
Sserj
29.12.21
✎
13:33
|
(5) Для этого нужно использовать параметризированый подготовленный запрос. Если тип параметра указан однозначно строкой спец символы в нем будут трактоваться как обычная строка.
|
|||
9
Ryzeman
29.12.21
✎
13:33
|
(1) Сам ответил. Другой вопрос зачем в (6) SQL-инъекция?...
Чем УстановитьТекстовыйПараметр не устраивает? |
|||
10
Ryzeman
29.12.21
✎
13:43
|
(9)+ Какой-нибудь шутник забьёт тебе в поиск 1%; DROP TABLE 1SJOURN; --
и привет :) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |