Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2015.09.10;
Скачать: CL | DM;

Вниз

как можно "залочить" записи?   Найти похожие ветки 

 
Tirael   (2011-04-29 22:38) [0]

использую MYDAC и DBGreedEH

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

придумал добавить ко всем таблицам булево поле, и при "лочке" устанавливать это поле для всего дерева, но не знаю как бы сделать так чтоб компоненты по значнию этого поля запрещали редактировать.

ЗЫ. возможность просмотра должна остаться, возможность редактирования незалоченных тоже.


 
sniknik ©   (2011-04-29 23:03) [1]

> использую MYDAC и DBGreedEH
а у этого используемого "мудака" субд имеется?

> но не знаю как бы сделать так чтоб компоненты по значнию этого поля запрещали редактировать.
тригер


 
Tirael   (2011-04-30 09:22) [2]

ессно, MySQL

я хотел делать делать это на клиенте, потому как осбо привилегированным аккаунтам все же нужно дать возможность редактирования, (например название потребуется чуть подправить и т.п.) триггеры вроде как переменных не принимают, а снимать лочку совсем нельзя - в это время ктото другой может "наредактировать"

ЗЫ сорри, DBGridEh случайно обозвал, к вечеру голова квадратная (


 
Tirael   (2011-04-30 09:44) [3]

ЗЫЫ.

и еще одна проблема с триггерами, он поменять то запретит, но об этом не скажет, просто отменит изменение.

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


 
sniknik ©   (2011-04-30 10:44) [4]

> но об этом не скажет
ексепты


 
ов (дом)   (2011-05-02 12:10) [5]

я б на отрисовку грида предупреждение выдавал


 
Tirael   (2011-05-02 18:17) [6]

угу, но остается вопрос как быть с "привелигированными"?

триггер выполняется в контексте DEFINER`а и CURRENT_USER() или USER() вернут собственно его...

неужель у DBGridEh  нет способа ставить readOnly отдельным записям?


 
Johnmen ©   (2011-05-02 22:55) [7]

Весь вопрос в том, как определяется, кто с привелегией, а кто смерд вонючий....


 
sniknik ©   (2011-05-02 23:02) [8]

> триггер выполняется в контексте DEFINER`а и CURRENT_USER() или USER() вернут собственно его...
точно, точно? а если проверить? т.к. в mssql я вроде бы использовал suser_sname(), ну, или что то  этогого плана в тригере... работало.
мне проверять не охота.

> неужель у DBGridEh  нет способа ставить readOnly отдельным записям?
зачем? правильно ограничения, права, целостность базы поддерживать на уровне субд, и не зависеть от приложения.

на уровне приложения это вообще не проблема... например, у рекордсета есть такой метод как афтерскрол, проверить в нем значение поля и установить readOnly разве проблема? (1 строчка кода...)


 
Ega23 ©   (2011-05-03 11:57) [9]


> неужель у DBGridEh  нет способа ставить readOnly отдельным
> записям?


А это, по-идее, не его забота.



Страницы: 1 вся ветка

Текущий архив: 2015.09.10;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.08 c
15-1421703002
Юрий
2015-01-20 00:30
2015.09.10
С днем рождения ! 20 января 2015 вторник


3-1304879439
AndreyRus
2011-05-08 22:30
2015.09.10
Тип поля Bit в агрегатных функциях.


15-1411754239
aka
2014-09-26 21:57
2015.09.10
посоветуйте offline словарь на Андройд


15-1414269018
Юрий
2014-10-26 00:30
2015.09.10
С днем рождения ! 26 октября 2014 воскресенье


3-1304500232
scott-tiger
2011-05-04 13:10
2015.09.10
табличный тип -> xml (Оракл)