Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Как заблокировать элемент справочника (число прочтений - 2432 )
oav
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 97
Местоположение: Пермь
Зарегистрирован: 09. Ноября 2009
Пол: Мужской
Как заблокировать элемент справочника
27. Июля 2011 :: 06:24
Печать  
Подскажите пожалуйста можно ли прямым запросом заблокировать элемент справочника или весь справочник?
  
Наверх
 
IP записан
 
Leierkastenmann
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 114
Зарегистрирован: 30. Марта 2007
Re: Как заблокировать элемент справочника
Ответ #1 - 27. Июля 2011 :: 08:56
Печать  
Смотря что подразумевается под блокировкой.
  
Наверх
 
IP записан
 
oav
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 97
Местоположение: Пермь
Зарегистрирован: 09. Ноября 2009
Пол: Мужской
Re: Как заблокировать элемент справочника
Ответ #2 - 27. Июля 2011 :: 10:47
Печать  
так же как и в 1С . Элемент справочника Блокировка(<?>);
  
Наверх
 
IP записан
 
Leierkastenmann
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 114
Зарегистрирован: 30. Марта 2007
Re: Как заблокировать элемент справочника
Ответ #3 - 27. Июля 2011 :: 11:00
Печать  
Нет, в SQL несколько иные блокировки. Что надо предотвратить? Чтение на уровне запроса предотвратить не удастся, потому что есть хинт nolock. Для того, чтобы во время какого-нибудь процесса гарантированно не было записей в таблицу можно использовать хинты типа tablock, tablockx и т.п. в зависимости от потребностей.

Можно еще устанавливать блокировки приложения при помощи процедуры sp_getapplock. Но для этого собственно в самом приложении должна быть реализована логика работы с такими блокировками.
  
Наверх
 
IP записан
 
oav
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 97
Местоположение: Пермь
Зарегистрирован: 09. Ноября 2009
Пол: Мужской
Re: Как заблокировать элемент справочника
Ответ #4 - 27. Июля 2011 :: 12:04
Печать  
хотелось бы заблокировать одну запись справочника. Что бы читать было можно, а писать нет. Всю таблицу блокировать не хочется....
  
Наверх
 
IP записан
 
Leierkastenmann
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 114
Зарегистрирован: 30. Марта 2007
Re: Как заблокировать элемент справочника
Ответ #5 - 27. Июля 2011 :: 12:20
Печать  
Так а чем Блокировка() не устраивает?
  
Наверх
 
IP записан
 
oav
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 97
Местоположение: Пермь
Зарегистрирован: 09. Ноября 2009
Пол: Мужской
Re: Как заблокировать элемент справочника
Ответ #6 - 28. Июля 2011 :: 03:19
Печать  
потому что подключаюсь к другой базе! Хотелось бы все сделать прямыми запросами...! Если конечно это возможно??
  
Наверх
 
IP записан
 
Leierkastenmann
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 114
Зарегистрирован: 30. Марта 2007
Re: Как заблокировать элемент справочника
Ответ #7 - 28. Июля 2011 :: 05:18
Печать  
Ну в общем блокировки в SQL не будут работать так, как работает метод Блокировка, потому что это метод приложения, он просто гарантирует что элемент не будет записан средствами встроенного языка, но прямым SQL всегда можно изменить запись, на которую наложена 1совская блокировка.
SQL блокировки могут быть какими угодно, на строку, на страницу, на таблицу и т.п. Чтение при таких блокировках будет возможно всегда (в некоторых случаях грязное). 1ска при такой блокировке не будет ничего говорить до тех пор, пока не попытаетесь записать элемент, тогда получите сообщение о неудачном выполнении транзакции.
В общем читайте  про rowlock, paglock, updlock, tablock и прочие и выбирайте то, что вам больше подходит. Только аккуратно их используйте  Улыбка
  
Наверх
 
IP записан
 
oav
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 97
Местоположение: Пермь
Зарегистрирован: 09. Ноября 2009
Пол: Мужской
Re: Как заблокировать элемент справочника
Ответ #8 - 28. Июля 2011 :: 07:04
Печать  
большое спасибо. Постараюсь что-нибудь подобрать.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать