powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / блокировки.. еше раз
3 сообщений из 3, страница 1 из 1
блокировки.. еше раз
    #32018792
NewComer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можно поставить блокировку на несколько строк, с возможностью их чтения.
А возможно ли прочитав строку узнать что она заблокированна от изменеий? не используя при этом доп. таблиц и т.д.
Т.е такая проблема: читать юзверь строки может, но при изъявлении желания редактирования какой - либо строки он сразу получал уведомление что запись блокирована, а не после попытки ее изменения.
...
Рейтинг: 0 / 0
блокировки.. еше раз
    #32018796
Блокируем:

begin tran
select ... from ... (updatelock) where <some_critery>
.....
commit

Читаем без проблем (до тех пор, пока не было физ. изменения записей)

select ... from ... where <some_critery> and ...

Проверяем, заблокировано или нет.

set lock_timeout 0
select ... from ... (updatelock) where <some_critery> and ...

Оба-на - ошибка. Значит, заблокировано.


Другой вариант - выставление и чтение меток в спец. полях

Ещё один вариант (только в slq2000) - использование процедур sp_getapplock и sp_releaseapplock
...
Рейтинг: 0 / 0
блокировки.. еше раз
    #32018902
Фотография Garya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Предлагаю тщательнее подумать, действительно ли корректно поставлена задача. Есть проблема "грязного чтения", связанного с изолированностью транзакций. но есть и подобная проблема, которая с транзакциями вообще никак не связана. Юзер Юзерович открыл на просмотр таблицу и ушел попить чайку, оставив содержимое таблицы на экране. Когда он вернулся, содержимое таблицы на эране все то же самое, но на сервере оно уже совсем другое (другие пользователи много чего наизменяли, наудаляли и надобавляли). Но Юзеру Юзеровичу это невдомек, и он пытается править таблицу в том виде, в котором видит ее содержимое на экране... И получает еггогом по глазам (а если не получает, это еще хуже - программиста за хвост и об стену). Ну и что с того, что таблицу блокировали и разблокировали, по нескольку раз, пока он пил чай?
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / блокировки.. еше раз
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]