Re: О разделении доступа.

From
Max Slobodski ()
To
All ()
Date
1998-07-14T00:31:48Z
Area
RU.TRADESOFT
From: "Max Slobodski" <topsoft@orgland.ru>

Vladimir Degtyarenko пишет в сообщении <6o6v3s$d74$1@wild.surnet.ru> ...
>
>Возможно подойдет такое решение: ...
>    софт проверяет по таймауту (например через 3 сек (или 3 часа) метка
>недейтсвительна)
>P.S. извини, забыл добавить, вариант с юзером не совсем корректен:
>после отваливания, юзер как правило заваливается снова, в таком
>случае функция Подключен(Юзер) будет вводить в заблуждение.

Vladimir Mamzikov пишет в сообщении <6oc2hk$ktv$1@ns.infopac.ru> ...
>
>    Согласен с Владимиром Гетряренко - только таймер ...

Господа,
спасибо за поддержку и простите мою настырность, но предложенные вами
варианты проблему не решают.
Статус записи - или метку при любом раскладе имеет право изменить только тот
юзер, который
первым открыл документ. Нет причин ограничивать его по времени
редактирования документа таймаутом,
если это специально не оговорено в правилах пользования системой. На самом
деле проверка состояния записи нужна только тогда, когда есть реальная
попытка открыть документ. Мой вариант означает следующее: "позволяю открыть
док если тот не открыт или тот кто его открыл в данный момент не
подключен" - а это может быть только в том случае если он вывалился по
ошибке, иначе при выходе из документа его прога поставила бы метку
"свободно". Еслт он после вываливания заваливает обратно и видит метку "док
открыт мною" это тоже однозначно дает ему право открыть этот документ, тут
нет проблем. Если за это время документ успеет схватить другой юзер, то это
его полное право, тем более что в моей системе запись идет транзакциями и
значит первый юзер документ изменить не упел. Другими словами прога второго
пользователя, при попытке открыть документ, должна проверить, не вывален ли
первый юзер. Вот в этом и состоит проблема.
Вариант с таймером плох еще и тем, что загружает сеть лишними запросами а в
случае удаленного подключения вообще может оказаться непригодным.

P.S. Хороший пример того как должно быть - 1С:Торговля. В ней при попытке
открыть документ с двух
рабочих мест, выдается сообщение что документ занят. Хотя она и опрашивает
базу по таймеру, но вот именно в этом моменте таймер не используется
(проверял, устанвливая большой интервал).

Искренне Ваш,
----
Max
topsoft@orgland .ru




--- ifmail v.2.14dev2
 * Origin: EuroInterSoft, Zelenograd, Russia (2:5020/400@fidonet)