Проблема при обновлении поля в Dataset

Добрый день.
У меня следующая задача:

По изменению записи на детали нужно изменять состояние записи основного раздела.

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

И еще одно. Почему кода я делаю Dataset.Post() под этим пользователем все вроде срабатывает, то есть Post не дает ни какой ошибки, состояние возвращается в начальное только после Dataset.RefreshRecord, или после его переодкрытия.

Нравится

8 комментариев

"Домброва Михаил" написал:Вопрос в том, можно ли это как то обойти не используя триггеры?

Можно хранимые процедуры, но, думаю, это Вы и имели ввиду.
"Домброва Михаил" написал:состояние возвращается в начальное только после Dataset.RefreshRecord, или после его переодкрытия.

Не совсем понял, что есть начальное состояние.

"Кулак Олег" написал:Не совсем понял, что есть начальное состояние.

Имеется в веду, что исходное состояние записи было "Визирование", а нужно изменять на "Отправлено"

Я бы склонялся к варианту использования средств СУБД.

имхо правильный путь настроить грамотно права пользователей на поля - конкретно на поле состояние дать право редактирования, на остальные только чтение, и не надо будет проделывать дырки в безопасности

Наверное сделаю на триггере, т.к. у меня права раздаются тоже на них.

"Александр Кудряшов" написал:имхо правильный путь настроить грамотно права пользователей на поля - конкретно на поле состояние дать право редактирования, на остальные только чтение, и не надо будет проделывать дырки в безопасности

Поддерживаю. Права доступа на поля таблицы для таких случаев и созданы.

И не забываем работать исключительно через группы пользователей, даже если он там один :)

А через группы не выйдет, т.к. в моем случае, если пользователь добавлен на деталь "Кому/Копия", "Визирование" или "Резолции", ему выдетяются права на чтение записи раздела, если же его удалить, то права отбераются, при чем ответственный записи раздела при разних значениях ее поля "Состояние" тоже имеет разные права. Вот такая процедура раздачи прав:smile:

Показать все комментарии