Применение блокировок для предотвращения наложения обновлений

Если накладывающиеся изменения вызывают слишком много проблем, у вас есть еще одна возможность. Можно применить программный трюк, именуемый блокировкой, препятст­вующей наложению корректировок.

По существу блокировка использует ту же идею, которая мешает двум людям встретить­ся в одной туалетной кабинке. Когда один человек заходит, он или она включает блокировку и все остальные вынуждены ждать, пока дело не будет сделано. Аналогичным образом, когда пользователь пытается изменить запись, программа Access начинает с установки блокиров­ки этой записи. Любой другой пользователь, желающий внести изменения, вынужден ждать, пока не завершится первая операция.

Самый легкий способ применения блокировок — включение их с помощью параметров Access. Для этого выберите кнопку Office → Параметры Access(Office Access Options), Затем перейдите к категории Дополнительно(Advanced) и найдите параметр Блокировка по умолчанию(Default record locking).


У вас есть три следующих варианта для выбора.

§ Вариант Отсутствует(No locks) — это стандартная установка в программе Access. Когда применяется этот вариант, Access вообще не будет использовать блокировки и наложе­ние корректировок становится возможным.

■ Вариант Всех записей(All records) заставляет программу Access блокировать всю таблицу целиком, если кто-либо начнет редактировать запись. Это значение применяется крайне редко, поскольку оно блокирует все записи и препятствует работе с таблицей кого бы то ни было, если вносится хотя бы одно изменение. Такое ограничение может ввести любую организацию в тяжелый ступор.

■ Вариант Изменяемой записи(Edited record) блокирует отдельные записи, когда они редактируются, что препятствует наложению корректировок.


Последний вариант — наиболее распространенный вид блокировок. Когда применяется блокировка отдельных записей, программа Access не разрешит начать редактирование запи­си, если в данный момент кто-то еще ее изменяет. Когда вы сделаете попытку, Access выве­дет на экран пиктограмму, обозначающую блокировку записи, показанную на рис. 18.12.

 

Рис. 18.12. Символ "Вход воспрещен" предупреждает о необходимости ожидания вместо редактирования записи, которая уже используется. Если вы все же попытаетесь ввести данные в поле, программа Access решительно проигнорирует вашу попытку

 

 

Блокировки мешают превращению вашей БД в груду беспорядочных сведений, но они порождают другие проблемы. Программа Access вынуждена выполнять дополнительную работу по отслеживанию каждой блокировки — она должна действовать как перегруженный работой "умывальников начальник", выдающий ключи от кабинок. Access отслеживает бло­кировки, создавая файл с расширением laccdb. Например, когда кто-то в первый раз откры­вает БД с многопользовательской поддержкой BoutiqueFudge_be.accdb, программа Access создает файл, названный BoutiqueFudge_be.laccdb. (Символ "l" обозначает "locking" (блокировка).) Когда последний пользователь закрывает БД, Access удаляет файл с блоки­ровками.

 

Подсказка

Если вы загляните в папку с общим доступом и не увидите там файла с расширением laccdb, знайте, что в этот момент никто не использует БД или же кто-то открыл ее с монопольным дос­тупом (Exclusive mode).


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

 

 

Примечание

Отправляясь на перерыв, вы можете свернуть работу всей компании, даже не догадываясь об этом. Еще хуже то, что хотя потенциальные редакторы будут видеть, что запись заблокирова­на, они никак не смогут установить кто — причина их бед. Им остается только ждать и ждать.

 

 

Если вы все же решили применять блокировки, гораздо лучше использовать их в от­дельных формах, а не включать во всех БД с помощью параметров программы Access. Мож­но использовать для всей БД стандартное значение для блокировки Отсутствует (No locks), но задать применение блокировок во всех формах, использующих особенно важную таблицу, скажем Invoices(счета).

Для изменения способа обработки блокировок в формах откройте Окно свойств(Property Sheet) и найдите свойство Блокировка записей(Record Locks). Оно поддержива­ет те же три значения: Отсутствует (No Locks) (значение по умолчанию), Всех записей (All Records) и Изменяемой записи (Edited Record).

 

 

Примечание

Этот прием оставляет открытой дверь черного хода. Если кто-то решит внести изменение, от­крыв непосредственно таблицу, он обойдет блокировки, которые вы установили в своих фор­мах. Как всегда, людей легко направить верным путем, но трудно удержать их на этом пути.

 

 



php"; ?>