Показать сообщение отдельно
Старый 01.03.2013, 16:48   #1  
McArrow is offline
McArrow
Участник
 
45 / 38 (2) +++
Регистрация: 18.05.2009
Delete actions не работают по невидимым полям
Здравствуйте, коллеги.

Проблема (была):

В системе имеется пара таблиц, связанных Relation по EDT. В подчинённой таблице были обнаружены записи, для которых нет соответствующих записей в главной таблице. Как выяснилось, на главной таблице настроен Delete action с типом cascade на подчинённую. Теоретически, в случае удаления записей из главной таблицы через интерфейс, соответствующие записи в подчинённой должны были удаляться автоматически. Однако в некоторых случаях этого не происходило.

Если одновременно:
- у пользователя настроен доступ непосредственно на эти таблицы (доступ выдан на таблицы, на соответствующий им Security Key - нет);
- поле, являющееся внешним ключом в подчинённой таблице, имеет аттрибут Visible = no;
то delete actions по этому relation не работают в принципе (никакие).

Очень неожиданное поведение, на мой взгляд. Вообще, в системе много мест, где подобным образом настроены поля. При настройке прав доступа - мина с замедленным действием.

Может я хотфикс какой пропустил? Или мануал не дочитал?

В приложении приведён демо-проект, демонстрирующий данную "фичу".

проверено на DAX4 SP2. Может кто-нибудь проверит на 2009?
Вложения
Тип файла: xpo SharedProject_MDL_DACascadeTest.xpo (12.2 Кб, 357 просмотров)
За это сообщение автора поблагодарили: mazzy (2), Logger (3), S.Kuskov (1).