AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 12.02.2016, 10:41   #1  
abark is offline
abark
Участник
 
14 / 10 (1) +
Регистрация: 26.06.2013
Адрес: Волгоград
точнее для моей версии SQL 2008 будет так:
X++:
DECLARE @RetryCount smallint
SET @RetryCount = 5
WHILE 1=1
BEGIN
    BEGIN TRY
        BEGIN TRANSACTION
        ...
        COMMIT TRANSACTION
        BREAK
    END TRY
    BEGIN CATCH
        ROLLBACK TRANSACTION
        IF ERROR_NUMBER() in (1204 /*SqlOutOfLocks*/, 1205 /*SqlDeadlockVictim*/, 1222 /*SqlLockRequestTimeout*/) and @RetryCount > 0
        begin
            SET @RetryCount = @RetryCount - 1
            WAITFOR DELAY '00:00:02'
        end
        ELSE  --    ,    
        begin
            --THROW ; -- SQL 2012
            -- SQL 2008: CATCH blocks can use RAISERROR to rethrow the error that invoked the CATCH block
            DECLARE @ErrorMessage NVARCHAR(4000), @ErrorNumber INT, @ErrorSeverity INT, @ErrorState INT, @ErrorLine INT, @ErrorProcedure NVARCHAR(200);
            -- Assign variables to error-handling functions that capture information for RAISERROR.
            SELECT @ErrorNumber = ERROR_NUMBER(), @ErrorSeverity = ERROR_SEVERITY(), @ErrorState = ERROR_STATE(), 
                   @ErrorLine = ERROR_LINE(), @ErrorProcedure = ISNULL(ERROR_PROCEDURE(), '-');
            -- Build the message string that will contain original error information.
            SELECT @ErrorMessage = N'Error %d, Level %d, State %d, Procedure %s, Line %d, ' + 'Message: '+ ERROR_MESSAGE();
            -- Raise an error: msg_str parameter of RAISERROR will contain the original error information.
            RAISERROR (@ErrorMessage, @ErrorSeverity, 1,               
                       @ErrorNumber,    -- parameter: original error number.
                       @ErrorSeverity,  -- parameter: original error severity.
                       @ErrorState,     -- parameter: original error state.
                       @ErrorProcedure, -- parameter: original error procedure name.
                       @ErrorLine       -- parameter: original error line number.
                      );
            break;
        end
    END CATCH;
END
__________________
Ax 3.0 SP5 FP2 kr2
Теги
deadlock, odbc

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
dynamicsaxtraining: What is Lock, Deadlock in Dynamics AX Blog bot DAX Blogs 0 02.06.2015 13:11
aEremenko: Пакетная обработка в AX 2009 Blog bot DAX Blogs 4 28.09.2010 15:36
Суммарная обработка накладной AlexUnik DAX: Функционал 1 19.08.2004 15:51
Пример DeadLock Maxim Gorbunov DAX: База знаний и проекты 0 06.12.2001 20:00
DeadLock Maxim Gorbunov DAX: База знаний и проекты 0 03.12.2001 20:16

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 18:06.