Показать сообщение отдельно
Старый 12.02.2010, 10:56   #8  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,444 / 1781 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от Prophetic Посмотреть сообщение
Вот как выглядит запрос после применения RLS...
я так понимаю не устраивает вас то, что к условиям RLS на JuridicalPersonId ваше условие на RecId добавилось через OR. По логики, нужно бы через AND. Так?

1) Почему это произошло? По всей видимости для реализации RLS, система использует расширенный синтаксис задания range, причём добаляет это условие в range по RecId. Т.е когда вы добавляете своё собственно условие на RecId, в нём уже сидит условие от RLS. Но дело в том, что если последовательно добавлять range на одно и тоже поле, то условия будут добавляться через ИЛИ. Так устроен range.

2) Что делать? Можно попробовать следующее:
Вариант №1. Для позиционирования на нужной записи использовать какой-нибудь другой ключ, не RecId.
Вариант №2. Для добавления своего условия по RecId использовать расширенный синтаксис, но добавлять это условие не на RecId, а на какое-нибудь другое поле.
Вариант №3. Для добавления своего условия по RecId не добавлять новый range, а изменить существующий. Те вместо addRange использовать findRange.

P.S.: Опередили
За это сообщение автора поблагодарили: Prophetic (1).