Navision - советы и секреты

  Все выпуски  

Navision - советы и секреты, как запретить обновление версии клиента Dynamics NAV


Добрый день!

Давным-давно, когда я еще учился в автошколе, на первом занятии инструктор сказал - каждый из вас попадет в ДТП. Группа нервно засмеялась. А он говорит - я не шучу. Каждый.

Время показало, что он был прав. Давным-давно, когда я пришел на свою первую работу в должности разработчика, нет - не попал в ДТП - положил базу во время очередного обновления объектов. Как сейчас помню звонок из бухгалтерии - ой, а что у нас с базой? Что-то она не работает.

Уверен, что каждый может вспомнить подобную историю из своей практики. Сегодня в студии - очередной хинт, повышающий устойчивость системы к внешним воздействиям. На этот раз запрещаем обновление версии клиента, которое требует обновления БД. Автор - Максим Репин.

CREATE TRIGGER dbo.TRG_Deny_Version_Update ON dbo.[$ndo$dbproperty]
FOR UPDATE
AS

DECLARE @OldVersion INT, @NewVersion INT
DECLARE @OldID varchar(2000), @NewID varchar(2000)

SELECT @NewID = identifiers, @NewVersion = databaseversionno 
FROM inserted

SELECT @OldID = identifiers, @OldVersion = databaseversionno 
FROM deleted

IF @OldID <> @NewID OR @OldVersion <> @NewVersion
BEGIN
	RAISERROR('Обновление версии клиента запрещено.', 16, 1)
	IF @@TRANCOUNT <> 0
		ROLLBACK TRANSATION
END

При необходимости все-таки сделать обновление версии надо временно отключить этот триггер.

На сегодня - все, всем - хорошего дня!

С уважением,
Андрей Стрельников

Группа "Технологии как Искусство".

http://naviart.ru

mailbox@naviart.ru

P.S.Мы ищем таланты! Рассылке и базе знаний требуются авторы. Если у вас есть чем поделиться с другими - присылайте матерьялы на mailbox@naviart.ru. Опубликуем и поблагодарим!

 

P.P.S. Читатели тоже требуются :) Ваши отзывы - ресурс для развития ресурса :)

 


В избранное