Имя: Пароль:
1C
1С v8
Поясните по ПОДОБНО
0 Max1986
 
11.01.12
08:48
Увидел интересную вещь - не сталкивался - уж простите.

ГДЕ АктОказанияУслугУслуги.Описание ПОДОБНО &Описание

Запрос.УстановитьПараметр("Описание", "%[Сс]ушка%");

Что значит %-ты в слове "%[Сс]ушка%" и почему две буквы Сс в [].
Думается вопрос тупой - простите...
1 Wobland
 
11.01.12
08:49
% - любая подстрока, [] - один из. хотя, если мне не изменяет маразм, ПОДОБНО регистронечувствителен
2 butterbean
 
11.01.12
08:49
это не вопрос тупой
3 Рэйв
 
11.01.12
08:49
Оператор ПОДОБНО позволяет сравнить значение выражения, указанного слева от него, со строкой шаблона, указанной справа. Значение выражения должно иметь тип строка. Если значение выражения удовлетворяет шаблону – результатом оператора будет ИСТИНА, иначе – ЛОЖЬ.

Следующие символы в строке шаблона являются служебными и имеют смысл, отличный от символа строки:

% (процент): последовательность, содержащая любое количество произвольных символов
_ (подчеркивание): один произвольный символ
[…] (в квадратных скобках один или несколько символов): любой одиночный символ из перечисленных внутри квадратных скобок
В перечислении могут встречаться диапазоны, например a-z, означающие произвольный символ, входящий в диапазон, включая концы диапазона.
[^…] (в квадратных скобках значок отрицания, за которым следует один или несколько символов): любой одиночный символ, кроме тех, которые перечислены следом за значком отрицания
Любой другой символ означает сам себя и не несет никакой дополнительной нагрузки.

Если в качестве самого себя необходимо записать один из перечисленных символов, то ему должен предшествовать <Спецсимвол>. Сам <Спецсимвол> (любой подходящий символ) определяется в этом же операторе после ключевого слова СПЕЦСИМВОЛ.

Например, шаблон “%АБВ[0-9][абвг]\_абв%” СПЕЦСИМВОЛ “\” означает подстроку, состоящую из последовательности символов:
буквы А; буквы Б; буквы В; одной цифры; одной из букв а, б, в или г; символа подчеркивания; буквы а; буквы б; буквы в.

Причем перед этой последовательностью может располагаться произвольный набор симв
4 Рэйв
 
11.01.12
08:50
все крадут и крадут у народа СП...
5 Defender aka LINN
 
11.01.12
08:52
(1) Запусти в базе, которая на каком-нибудь DB2 или PostgreSQL лежит.
6 Wobland
 
11.01.12
08:52
(4) один товарищ грамотней поступил, спросил, где найти. пришлось даже скрин выкладывать ;)
http://s018.radikal.ru/i509/1201/ca/b05c143ff5cc.jpg
7 Wobland
 
11.01.12
08:53
(5) намёк на регистрочувствительность? лениво
8 Рэйв
 
11.01.12
08:53
(6):-)
9 Max1986
 
11.01.12
08:54
(6)спасибо
10 Max1986
 
11.01.12
09:00
так.
не понял написано
% (процент): последовательность, содержащая любое количество произвольных символов
СПЕЦСИМВОЛ “\” означает подстроку, состоящую из последовательности символов

Например, шаблон “%АБВ[0-9][абвг]\_абв%” означает подстроку, состоящую из последовательности символов:
буквы А; буквы Б; буквы В; одной цифры; одной из букв а, б, в или г; символа подчеркивания; буквы а; буквы б; буквы в.

т.е. % и \ идентичны ?
11 Рэйв
 
11.01.12
09:01
%- лубое количество сисволов
\ - определенную строку
12 Wobland
 
11.01.12
09:01
(10) как быть, когда в искомой строке есть символ "%"?
13 Max1986
 
11.01.12
09:02
И чем тогда отличаться возврат запроса если напишем по разному
Запрос.УстановитьПараметр("Описание", "Сушка");
Запрос.УстановитьПараметр("Описание", "%Сушка%");
14 Рэйв
 
11.01.12
09:03
(13)Тем что в первом случае найдет только "Сушка"
А во второи и "ЗаСушка" и "СушкаПро" и т.д
15 Max1986
 
11.01.12
09:06
(14)понял! спасибо!
тогда получается, то
Запрос.УстановитьПараметр("Описание", "Сушка");
Запрос.УстановитьПараметр("Описание", "\Сушка");
будут работать одинаково?

т.е. %- любое количество символов означает что, это как бы подстрока вхождения
16 butterbean
 
11.01.12
09:10
(15) "\" - это обычный символ как и любой другой
17 butterbean
 
11.01.12
09:10
(16)+ кроме спецсимволов конечно
18 Amiralnar
 
11.01.12
09:10
(7) Не только регистр. Еще DB2 не понимает другие шаблоны кроме "%" и "_"
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.