Свойство RecordLocks и связанные интерфейсные элементы

При открытии в Access связанной формы или набора записей имеется возможность наложения бло­кировки на соответствующий набор записей. Конечно, эти параметры можно использовать только при ра­боте с Jet, тогда как при использовании конфигурации приложения Access клиент-сервер предполагается установка режима No Locks (отсутствует).

Существует три режима блокировки:

• No Locks (отсутствует) - эквивалентен оптимистической блокировке,

• Edited Records (изменяемой записи) - эквивалентен пессимистической блокировке,

• All Records (всех записей) - блокировка всех записей набора. В многопользовательских приложениях этот режим следует использовать с осторожностью

Определение состояния блокировки

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

В ADO существует свойство набора записей LockType, содержащее информацию о применяемом к записям типе блокировки. Это свойство доступно для чтения и записи до момента открытия набора за­писей, если набор записей уже открыт, оно доступно только для чтения. Значения свойства LockType для Microsoit.Jet.OLEDB.4.0 приводятся в табл. 2. При использовании других поставщиков могут применяться иные константы. Для определения поддерживаемых поставщиком параметров следует использовать метод. Supports с параметрами adUpdate либо adUpdateBatch

Тестирование блокировок

Применяемые к записям блокировки можно протестировать, просмотрев значения свойств LockType и EditMode, но обычно гораздо более важно выяснить тип блокировки, налагаемой другим пользователем на требуемые данные. Единственный способ выполнения поставленной задачи фактически состоит в не- обходимости вызова ошибки конфликта доступа

 

Использование блокировки страниц

Как уже говорилось, в течение длительного периода в Access не существовало возможности непосред­ственной блокировки отдельных записей, предоставлялась лишь блокировка целых страниц. Чтобы исполь­зовать преимущества более высокой производительности при задействовании страничной блокировки, необходимо отключить установленный по умолчанию параметр блокировки на уровне строк. Для этого следует выполнить команды меню Tools / Options [ Advanced и отключить флажок Open databases with row-level locking (Блокировка записей при открытии базы данных).

Обработка ошибок блокировки при работе в многопользовательской среде

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: