|
|
|
И о5 про блокировку нескольких записей в таблице.Как правильно?
|
|||
|---|---|---|---|
|
#18+
Возможно ли это? Файл-сервер, А97, н-пользователей, линейная таблица. Нужно по условию блокировать записи в таблице. Например, когда один пользователь начинает работать с записями по фильтру, для остальных записи по этому фильтру должны быть заблокированы на изменение, удаление и добавление. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2004, 16:39 |
|
||
|
И о5 про блокировку нескольких записей в таблице.Как правильно?
|
|||
|---|---|---|---|
|
#18+
Начни транзакцию Отредактируй нужные записи (Edit - Update без внесения изменений) Подвесь транзакцию за веревочку куда-нибудь Когда надо будет освободить записи - завершай транзакцию (если сам эти записи менял - то commit'ом, если только читал - то rollback'ом) Учти, что в 97-м блокировка только на уровне страниц. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2004, 16:43 |
|
||
|
И о5 про блокировку нескольких записей в таблице.Как правильно?
|
|||
|---|---|---|---|
|
#18+
Заводим поле: код юзера, который редактирует запись. Теперь осталось вовремя заполнять и чистить это поле, а также предусмотреть возможность блокировок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2004, 16:45 |
|
||
|
И о5 про блокировку нескольких записей в таблице.Как правильно?
|
|||
|---|---|---|---|
|
#18+
2 Саныч Теперь осталось вовремя заполнять и чистить это поле, а также предусмотреть возможность блокировок А так же не забывать проверять это поле перед каждым редактированием записи, через код и через формы, а так же смириться с тем, что между проверкой и установкой рукотворной "блокировки" кто-нибудь тебя может тебя опередить. Да еще и клиент может отвалиться ненароком (не почистив за собой) В общем, это уже обсуждалось. Не стоит пытаться сделать блокировки не используя родные блокировки. Получится только хуже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2004, 16:58 |
|
||
|
И о5 про блокировку нескольких записей в таблице.Как правильно?
|
|||
|---|---|---|---|
|
#18+
Уболтал. :^) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2004, 17:00 |
|
||
|
И о5 про блокировку нескольких записей в таблице.Как правильно?
|
|||
|---|---|---|---|
|
#18+
2Лох Позорный: А позволяет ли этот способ блокировать добавление новых записей, удовлетворяющих условию фильтра? 2Владимир Саныч: Способ хорош, но требует изменения логики работы и достаточной переработки отдельных кусков:( Попроще бы что-нибудь, эх.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2004, 17:06 |
|
||
|
И о5 про блокировку нескольких записей в таблице.Как правильно?
|
|||
|---|---|---|---|
|
#18+
2 Усталый А позволяет ли этот способ блокировать добавление новых записей, удовлетворяющих условию фильтра? Не-а. Добавление записей вообще сложно заблокировать (если не брать в расчет блокировку всей таблицы), а уж заблокировать добавление записей по критерию - средствами Jet имхо не получится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2004, 17:20 |
|
||
|
И о5 про блокировку нескольких записей в таблице.Как правильно?
|
|||
|---|---|---|---|
|
#18+
Мать - Мать - Мать!!! А как же все выкручиваются? Свою логику цепляют? Ндя... :((((( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2004, 17:24 |
|
||
|
И о5 про блокировку нескольких записей в таблице.Как правильно?
|
|||
|---|---|---|---|
|
#18+
Если нужно сложную логику на блокировки - то это только нормальная СУБД вроде SQL и т.п., но никак не Access MDB. Для MDB в качестве "идеи на коленке" - завести свою таблицу блокировок, что-то вроде - имя таблицы, ключ. При работе пользователя - нужные записи копируются в эту таблицу, после работы удаляются. Любые операции вставка/редактирование/удаление делать только при отсутствии соответствующих записей в этой талблице. Хотя все равно - это глухой вариант, т.к. нужно отлавливать случаи, когда отвалился клиент и не почистил за собой и другие нештатные ситуации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2004, 17:29 |
|
||
|
И о5 про блокировку нескольких записей в таблице.Как правильно?
|
|||
|---|---|---|---|
|
#18+
incold Хотя все равно - это глухой вариант, т.к. нужно отлавливать случаи, когда отвалился клиент и не почистил за собой и другие нештатные ситуации. Вот именно, что то мне напоминает? что ходил я такой тернистой дорогой и нажил еще больше проблем чем было:( Попробую наверное сперва скрестить BeginTrans с какой нибудь логикой по отлову новых записей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2004, 17:38 |
|
||
|
И о5 про блокировку нескольких записей в таблице.Как правильно?
|
|||
|---|---|---|---|
|
#18+
Сама по себе эта дорога - весьма плохая. Ею не ходят. Но если сильно хочется, ищи вокруг adLockPessimistic блокировок, BatchUpdates и т.д. (и тд (и тд)) ЗЫ По поводу вопроса: Если пользователь ушел на обед до завтра? Все уходят вслед за ним? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2004, 18:38 |
|
||
|
И о5 про блокировку нескольких записей в таблице.Как правильно?
|
|||
|---|---|---|---|
|
#18+
2 Victosha Спасибо почитаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2004, 19:08 |
|
||
|
|

start [/forum/topic.php?fid=45&fpage=1685&tid=1676831]: |
0ms |
get settings: |
9ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
39ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
62ms |
get tp. blocked users: |
1ms |
| others: | 266ms |
| total: | 416ms |

| 0 / 0 |
