Re: О разделении доступа.
- From
- Vladimir Degtyarenko ()
- To
- All ()
- Date
- 1998-07-14T21:08:17Z
- Area
- RU.TRADESOFT
From: "Vladimir Degtyarenko" <vhome@v-ufal.chel.su>
Max Slobodski пишет в сообщении <6odqr7$6n1@orgland.ru> ...
>Vladimir Degtyarenko пишет в сообщении <6o6v3s$d74$1@wild.surnet.ru> ...
>>
>>Возможно подойдет такое решение: ...
>> софт проверяет по таймауту (например через 3 сек (или 3 часа) метка
>>недейтсвительна)
>>P.S. извини, забыл добавить, вариант с юзером не совсем корректен:
>>после отваливания, юзер как правило заваливается снова, в таком
>>случае функция Подключен(Юзер) будет вводить в заблуждение.
>
>Vladimir Mamzikov пишет в сообщении <6oc2hk$ktv$1@ns.infopac.ru> ...
>>
>> Согласен с Владимиром Гетряренко - только таймер ...
>
>Господа,
>спасибо за поддержку и простите мою настырность, но предложенные вами
>варианты проблему не решают.
Боюсь вступаю в разговор довольно спорных взглядов...
Я с аксцессом не работал, но судя по вопросу, он не может блокировать одну
запись.
(Да и в других системах, если запись блокируется на длительное время
то это говорит о том что у программиста что-то не так..., либо это
иключительный
случай, но это не должно быть связано с экранной формой)
>Статус записи - или метку при любом раскладе имеет право изменить только
тот
>юзер, который
>первым открыл документ. Нет причин ограничивать его по времени
>редактирования документа таймаутом,
согласен, пусть редактирует хоть целый день (случай не редкий :)), но если
в это время другие не могут делать то-же самое с той-же записью, то из
многопользовательской
базы она становиться однопользовательской, то-есть запись необходимо
блокировать
непосредственно перед записью данных в базу, а кто не успел тот должен
получить
соответствующее сообщение и обновленные данные.
>если это специально не оговорено в правилах пользования системой. На самом
>деле проверка состояния записи нужна только тогда, когда есть реальная
>попытка открыть документ. Мой вариант означает следующее: "позволяю открыть
>док если тот не открыт или тот кто его открыл в данный момент не
>подключен" - а это может быть только в том случае если он вывалился по
>ошибке, иначе при выходе из документа его прога поставила бы метку
>"свободно". Еслт он после вываливания заваливает обратно и видит метку "док
>открыт мною" это тоже однозначно дает ему право открыть этот документ, тут
>нет проблем. Если за это время документ успеет схватить другой юзер, то это
>его полное право, тем более что в моей системе запись идет транзакциями и
>значит первый юзер документ изменить не упел. Другими словами прога второго
>пользователя, при попытке открыть документ, должна проверить, не вывален ли
>первый юзер. Вот в этом и состоит проблема.
Проблема в том, Уверен на 99% ни одна система не выдаст что такой-то
пользователь
редактирует такую-то запись (спецы меня поправят), а если городить что-то
свое, то проблемы для себя и для обслуживания.
>Вариант с таймером плох еще и тем, что загружает сеть лишними запросами а в
>случае удаленного подключения вообще может оказаться непригодным.
Никаких лишних запросов, ибо пытаясь захватить запись в ней-же проверяем
статус и время и выдаем юзеру сообщение "извини брат, запись редактируется
другим
юзером уже 30 минут, что будем делать?"
>P.S. Хороший пример того как должно быть - 1С:Торговля. В ней при попытке
>открыть документ с двух
>рабочих мест, выдается сообщение что документ занят. Хотя она и опрашивает
>базу по таймеру, но вот именно в этом моменте таймер не используется
>(проверял, устанвливая большой интервал).
с 1С не работал, но если из-за одного разгильдяя другой не может работать,
то значит свои проблемы программист переложил на плечи юзера.
>
С уважением, Владимир Дегтяренко.
vhome@v-ufal.chel.su
--- ifmail v.2.14dev2
* Origin: SURNIC (2:5020/400@fidonet)