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

Нравится

4 комментария

Первое, что пришло в голову - для пользователей поле TextEdit вместо старого (или что там у вас, без привязки к датасету) на карточке, по ОК чтение содержимого поля, вызов хранимой процедуры (сначала предложил функцию, но возвращать нечего наверное ей:)) с параметрами (RecordID, EditValue) на сервере, которая пишет от имени db_owner что надо и куда надо.
Плюс понятное дело заполнение поля на событии onPrepare окна

Либо сделайте действие в контекстное меню грида с подъемом диалогового окна с одним единственным полем для ввода значения, а далее аналогично

Пробовал, там нужно поставить маркер в одно поле, по дебагеру прошелся записало и сохранило, но значение в записи не изменилось. Сейчас попробую создать процедуру

"Радчук Виталий Владимирович" написал:по дебагеру прошелся записало и сохранило

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

что то типа такого в коде
CREATE PROCEDURE [dbo].[tsp_NevermindRightsManagement]
WITH EXECUTE AS 'dbo'

не забудьте права пользователям на выполнение процедуры дать

Все получилось, спасибо

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