Переключение на Главную Страницу Страницы: 1 [2]  ОтправитьПечать
Горячая тема (более 10 ответов) Как переделать лучше эту функцию МОДа? (число прочтений - 6003 )
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Как переделать лучше эту функцию МОДа?
Ответ #15 - 30. Января 2008 :: 12:39
Печать  
Цитата:
Дописал, спасибки
Но ведь это одна инструкция!

Это две инструкции в одном пакете.
В транзакцию завернуть не забыл?  Улыбка
Цитата:
UPDLOCK:
Use update locks instead of shared locks while reading a table, and hold locks until the end of the statement or transaction.
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
Вадимко
God Member
*****
Отсутствует


Нам бы чего про ОдноЦэ...

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Как переделать лучше эту функцию МОДа?
Ответ #16 - 30. Января 2008 :: 12:49
Печать  
Профайлер показал что одна... неужели что-то влезет?  Ужас
Хорошо заверну
Но мне кажется лучше делать как делает 1С (как я писал выше)
Иначе как предлагал Ник я установлю другой уровень изоляции для последующих транзакций САМОЙ 1С
Звеняйте если продолжаю тупить...
  

Кампутер, кофе и сигареты - это очень плохо для моего здоровья...
Наверх
IP записан
 
Вадимко
God Member
*****
Отсутствует


Нам бы чего про ОдноЦэ...

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Как переделать лучше эту функцию МОДа?
Ответ #17 - 30. Января 2008 :: 12:52
Печать  
Вот так прокатит?

Код
Выбрать все
	ТекстЗапроса = "
	|set implicit_transactions on
	|select right('0000000' + LTrim(idd), 7) + right('0000000000' + LTrim(str(uidd + 1, 10)),10)
	|from UIDD (updlock)
	|update UIDD
	|set uidd = uidd + 1
	|if @@trancount > 0 commit tran
	|set implicit_transactions off
	|";

 

  

Кампутер, кофе и сигареты - это очень плохо для моего здоровья...
Наверх
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Как переделать лучше эту функцию МОДа?
Ответ #18 - 30. Января 2008 :: 13:11
Печать  
Цитата:
hold locks until the end of the statement or transaction.


судя по этому описанию должно прокатить
  
Наверх
ICQ  
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Как переделать лучше эту функцию МОДа?
Ответ #19 - 30. Января 2008 :: 13:13
Печать  
Цитата:
Профайлер показал что одна... неужели что-то влезет?  Ужас
Хорошо заверну
Но мне кажется лучше делать как делает 1С (как я писал выше)
Иначе как предлагал Ник я установлю другой уровень изоляции для последующих транзакций САМОЙ 1С
Звеняйте если продолжаю тупить...

Естествено тебе потом нужно всё вернуть на место
  
Наверх
ICQ  
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Как переделать лучше эту функцию МОДа?
Ответ #20 - 30. Января 2008 :: 13:17
Печать  
set implicit_transactions on  = begin transaction
поэтому лутше используй просто begin transaction
  
Наверх
ICQ  
IP записан
 
Вадимко
God Member
*****
Отсутствует


Нам бы чего про ОдноЦэ...

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Как переделать лучше эту функцию МОДа?
Ответ #21 - 30. Января 2008 :: 13:39
Печать  
Ага
Просто при включенной опции операции апдейт, селект и прочие автоматически начинают транзакцию

В общем если будут мысли - пишите

Поменяю на begin tran - commit tran
  

Кампутер, кофе и сигареты - это очень плохо для моего здоровья...
Наверх
IP записан
 
Переключение на Главную Страницу Страницы: 1 [2] 
ОтправитьПечать