В SQL существуют различные типы блокировок записей (раздельно для таблиц и индексов).
NOLOCK - ничего не блокируется (только для SELECT), ROWLOCK - блокируется строка, PAGELOCK - страница с данными в файле базы, TABLOCK - разделяемая блокировка таблицы, TABLOCKX - монопольная блокировка таблицы.
Другой механизм блокировки применяется SQL-сервером для изоляции транзакций при параллельном доступе к данным из нескольких приложений. Параметры READUNCOMMITTED/ READCOMMITTED/ REPEATABLEREAD/ SERIALIZABLE также можно установить в SQL инструкциями SET, а сами транзакции сделать не только неявными (для каждого отдельного оператора UPDATE), но и явными с помощью BEGIN TRANSACTIONS и COMMIT/ROLLBACK.
Аналогичная функциональность по уровню блокировок записей присутсвует и в ADO. ReadOnly - обновления не допускаются. Pessimistic - записи блокируются с началом редактирования и остаются заблокированными до исполнения UPDATE или перехода к следующей записи. Optimistic - записи блокируются только на мгновение исполнения UPDATE или перехода к следующей записи. BatchOptimistic - то же при пакетных обновлениях.
ADO поддерживает расширенную функциональность изоляции транзакций:
|