Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В Microsoft SQL Server Compact 3.5 инструкция SELECT в определении курсора выполняется согласно тем же правилам блокировки транзакций, которыми руководствуются другие инструкции SELECT. Блокировки транзакций, полученные любой инструкцией SELECT, в том числе инструкцией SELECT в определении курсора, управляются следующими элементами.
Настройка уровня изоляции транзакций для подключения.
Любые подсказки блокировки, указанные в предложении FROM.
В случае с базовой таблицей или курсорами индексов уровень изоляции транзакций может повлиять на получаемые блокировки.
Важно!
Для стандартного уровня изоляции ЧТЕНИЯ ЗАФИКСИРОВАННЫХ ДАННЫХ SQL Server Compact 3.5 не получает блокировок при расположении и чтении данных. Курсорам при ЧТЕНИИ ЗАФИКСИРОВАННЫХ ДАННЫХ необходима блокировка Sch-S для защиты стабильности схемы при открытом курсоре. Монопольные блокировки принимаются при изменении данных.
Блокировки удерживаются до завершения текущей транзакции как для курсоров, так и для инструкций SELECT.
Получение блокировок
Хотя в отношении типа блокировок транзакций курсоры подчиняются тем же правилам, что и независимые инструкции SELECT, получение блокировок происходит в разное время. Блокировки, созданные независимой инструкцией SELECT или курсором устанавливаются при запросе строки всегда. Для независимой SELECT получение всех строк происходит при исполнении инструкции. Курсоры получают строки в разное время в зависимости от типа курсора.
Статические курсоры получают весь результирующий набор при открытии курсора. Это приводит к блокировке каждой строки результирующего набора во время открытия.
Управляемые набором ключей курсоры получают ключи каждой строки результирующего набора при открытии курсора. Это блокирует каждую строку результирующего набора во время открытия.
Последовательные курсоры не получают строк, пока те не будут извлечены. Блокировку строки можно получить, только поместив на последнюю курсор.