Показать сообщение отдельно
Старый 12.06.2024, 20:48   #2  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,715 / 1204 (44) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
В MS SQL сервере введено понятие "ресурса", который можно заблокировать

sp_getapplock (Transact-SQL)

Физически, "ресурс" - это просто символьная строка. Соответственно, через команды прямого обращения к SQL (Connection+Statement) можно создать и заблокировать "ресурс" и при попытке другого пользователя создать тот же самый ресурс он получит ошибку

Применительно к данной задаче в качестве "ресурса" можно использовать имя обрабатываемого файла

Достоинства этого метода в том, что в случае разрыва соединения блокировка ресурса снимается автоматически. Именно по этой причине лучше использовать именно Connection

PS: вопрос только в том, какая версия MS SQL используется. Не помню, с какой версии эти функции были введены

PPS: в dax2012 есть готовый класс по работе с ресурсами MS SQL. Называется ReqReaderWriterLock. Но был ли он в dax2009 - не в курсе
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...

Последний раз редактировалось Владимир Максимов; 12.06.2024 в 21:06.
За это сообщение автора поблагодарили: S.Kuskov (5), Lankey (1).