|
Блокировка изменяемой записи в многопользовательском режиме
|
|||
---|---|---|---|
#18+
Доброго дня всем! Подскажите пожалуйста, почему при включении в параметрах БД "Блокировки на уровне записей" по факту блокировка не работает. База разделена, параметры БД выставлены и в файле с таблицами и в интерфейсных файлах. С двух интерфейсных файлов пробую одновременно редактировать одну и ту же строку в базе - и Аксесс мне это позволяет. Ругается только при потере фокуса этой записи о возникшем конфликте в результате одновременного внесения изменений в одну и туже запись. В чём тогда смысл этой опции? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2016, 14:14 |
|
Блокировка изменяемой записи в многопользовательском режиме
|
|||
---|---|---|---|
#18+
Rikozenit, Для начала перезагрузить файл данных. Для многих настроек нужно перезагружаться... А вообще, по крайней мере я, стараюсь делать собственную блокировку(доп поле и при открытии на редактирование записываю в него id оператора. Потом при сохранении чищу). Условия работы не идеальные, но по мне лучше так, чем бороться с сообщением - "Пока вы правили запись, она была изменена другим оператором...." вроде так звучит "Изменяемая запись" в аксе та еще штучка. На сколько знаю можно нарваться на блокировку и соседних строк, не смотря на то, что в настройках - только изменяемая запись. Можно по форуму поискать... ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2016, 19:59 |
|
Блокировка изменяемой записи в многопользовательском режиме
|
|||
---|---|---|---|
#18+
Игортан, я вот и думал, что благодаря блокировке, сообщение об одновременном изменении записи не будет, т.к. во время редактирования для остальных пользователей эта запись будет просто недоступна... Можете рассказать, как записывать id оператора? (я ещё на начальном этапе изучения VBA). Спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2016, 08:47 |
|
Блокировка изменяемой записи в многопользовательском режиме
|
|||
---|---|---|---|
#18+
Rikozenit, читайте здесь http://www.sql.ru/forum/140535-a/sud-nad-blokirovkoy-na-urovne-zapisi-v-acesse2000-mdb ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2016, 11:51 |
|
Блокировка изменяемой записи в многопользовательском режиме
|
|||
---|---|---|---|
#18+
mds_world, благодарю! Изучаю... Но вообще, я тут понял, что меня больше даже устроит ОТСУТСТВИЕ БЛОКИРОВКИ. Ибо каждому юзеру через формы у меня предоставлен доступ только к определённым полям (общих - нет). Я значится блокировку-то отключил! Но при одновременном редактировании разными юзерами через свои интерфейсы одной и той же записи, но разных полей, сообщение о конфликте всё равно появляется((( Как избавиться от предупреждения? Пускай аксесс позволяет разным юзерам одновременно вносить инфу в разные поля одной и той же записи. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2016, 15:16 |
|
Блокировка изменяемой записи в многопользовательском режиме
|
|||
---|---|---|---|
#18+
Rikozenit, Я вот сейчас точно не вспомню, почему не прижилось у меня. На самих формах есть свойство - Блокировка. Так вот там тоже есть разный тип блокировки. Когда я ее пробовал, давно правда, то при свойстве - Изменяемой записи, одну и туже запись можно открыть - НО НЕ РЕДАКТИРОВАТЬ. при попытке редактирования вторым оператором просто блокируется возможность ввода данных +звук сигнал. Для этого случая хорошо иметь открытой Область выделения. Вот в ней сразу видно, что запрещено изменение. Вот только не помню, есть ли проблемы с соседней строкой... Я всегда в настройках акса ставлю - блокировка отсутствует. Блокировки делаю при открытии формы на изменение. В таблице поле делаю Busy. В него вставляю id оператора (оператор из своей таблицы не системный) Типа вход в базу по паролю. После правильного введения логина пароля форму входа не закрываю а скрываю. Всегда при необходимости выдергиваю от туда id вошедшего оператора. Запись в таблицу занятости и снятие занятости(в данном примере): Код: vbnet 1.
Как то так ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2016, 18:52 |
|
Блокировка изменяемой записи в многопользовательском режиме
|
|||
---|---|---|---|
#18+
Игортан, Тут правда есть один существенный минус.... При аварийном закрытии базы, занятость не снимается. При старте делаю прогон по таблицам и в "своей занятости" обнуляю ее. Пример старый, другого под рукой нет(с работой только своих занятостей). Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2016, 18:58 |
|
|
start [/forum/topic.php?fid=45&msg=39273523&tid=1613223]: |
0ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
43ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
others: | 358ms |
total: | 495ms |
0 / 0 |