powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как убрать сообщение об ошибке?
16 сообщений из 16, страница 1 из 1
Как убрать сообщение об ошибке?
    #36819539
ИльдарSR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день.

Во время выполнения Хранимой процедуры появляется (в QA )вот такое сообщение,как сделать так,чтобы оно не выводилось(визуально)

Server: Msg 266, Level 16, State 2, Procedure bc_CheckAccountState, Line 138
Transaction count after EXECUTE indicates that a COMMIT or ROLLBACK TRANSACTION statement is missing. Previous count = 1, current count = 0.



Заранее благодарен.
...
Рейтинг: 0 / 0
Как убрать сообщение об ошибке?
    #36819547
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИльдарSR
Во время выполнения Хранимой процедуры появляется (в QA )вот такое сообщение,как сделать так,чтобы оно не выводилось(визуально)

переписать код правильно
или написать свое клиентское приложение, которое не будет отображать вам сообщения сервера
...
Рейтинг: 0 / 0
Как убрать сообщение об ошибке?
    #36821037
ИльдарSR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не понимаю почему происходит такая ситуация


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
BEGIN TRANSACTION


DECLARE	@return_value int,
		@reserve_id bigint,
		@summ numeric( 12 ,  4 )

SELECT	@summ =  1 
SELECT  @reserve_id =  228813 

EXEC	@return_value = [dbo].[bc_LocalReserv]
		@account_id =  52 ,
		@reserve_id = @reserve_id OUTPUT,
		@summ = @summ OUTPUT,
		@full_reserve_f =  0 ,
		@reserver_period =  1 ,
		@service_id =  250 ,
		@service_session_id =  1 ,
		@external_transaction_id = NULL

select  @@TRANCOUNT   -------- Выдает 0
IF @@TRANCOUNT <>  0  ROLLBACK TRANSACTION


Выдет ошибку
Msg 266, Level 16, State 2, Procedure bc_LocalReserv, Line 0
Transaction count after EXECUTE indicates a mismatching number of BEGIN and COMMIT statements. Previous count = 1, current count = 0.

Если тот же самый код не беру в begin tran ,то отрабатывает корректно.
В хранимой процедуре bc_LocalReserv при получении ошибки идет откат транзакции
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
OK_EXIT:
PRINT @errormsg
RETURN @return_code
ERROR_EXIT:
    PRINT @errormsg
    IF @@TRANCOUNT <>  0  ROLLBACK TRANSACTION
    RETURN @return_code

Заранее благодарен за Ваши ответы.
...
Рейтинг: 0 / 0
Как убрать сообщение об ошибке?
    #36821048
i2akai1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИльдарSR,

А в триггерах как обстоят дела с транзакциями?
...
Рейтинг: 0 / 0
Как убрать сообщение об ошибке?
    #36821049
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
select @@TRANCOUNT -------- Выдает 0

Вот именно про это и написано в сообщении об ошибке

Transaction count after EXECUTE... Previous count = 1, current count = 0.
...
Рейтинг: 0 / 0
Как убрать сообщение об ошибке?
    #36821065
ИльдарSR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Glory, ну а каким образом можно обработать данную ситуацию,чтоб работало корректно,я же вроде проверку написал IF @@TRANCOUNT .....

i2akai1,
Триггеров у меня нет
...
Рейтинг: 0 / 0
Как убрать сообщение об ошибке?
    #36821074
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИльдарSRGlory, ну а каким образом можно обработать данную ситуацию,чтоб работало корректно,я же вроде проверку написал IF @@TRANCOUNT .....

Причем тут ваш IF @@TRANCOUNT ?
Если в сообщении говорится о том, что до вызова процедуры у @@TRANCOUNT было значение 1, а после вызова - 0
...
Рейтинг: 0 / 0
Как убрать сообщение об ошибке?
    #36821077
мимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Transaction count after EXECUTE indicates a
mismatching number of BEGIN and COMMIT statements

Типа коммита на бегин хочет.
...
Рейтинг: 0 / 0
Как убрать сообщение об ошибке?
    #36821082
ambarka_max
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мимоTransaction count after EXECUTE indicates a
mismatching number of BEGIN and COMMIT statements

Типа коммита на бегин хочет.
Скорее уже ничего не хочет )
...
Рейтинг: 0 / 0
Как убрать сообщение об ошибке?
    #36821109
Фотография Maxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
EXEC	@return_value = [dbo].[bc_LocalReserv]
		@account_id =  52 ,
		@reserve_id = @reserve_id OUTPUT,
		@summ = @summ OUTPUT,
		@full_reserve_f =  0 ,
		@reserver_period =  1 ,
		@service_id =  250 ,
		@service_session_id =  1 ,
		@external_transaction_id = NULL


IF @return_value<>  0  and @@TRANCOUNT <>  0  
    ROLLBACK TRANSACTION


Ето в случае если @return_code в процедуре bc_LocalReserv имеет значение  0  при успещном віполнении процедуры
 
...
Рейтинг: 0 / 0
Как убрать сообщение об ошибке?
    #36821111
ИльдарSR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Боюсь спросить,и как обойти данную ситуацию,потому что хранимую процедуру bc_LocalReserve,будет запускать другая хп cctrl_StartSession,которая и выдает данную ситуацию?
...
Рейтинг: 0 / 0
Как убрать сообщение об ошибке?
    #36821115
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИльдарSRБоюсь спросить,и как обойти данную ситуацию,потому что хранимую процедуру bc_LocalReserve,будет запускать другая хп cctrl_StartSession,которая и выдает данную ситуацию?
Код надо писать еще логически правильно. А не только синтаксически.
...
Рейтинг: 0 / 0
Как убрать сообщение об ошибке?
    #36821259
ИльдарSR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Glory , понял Спасибо всем за ответы,буду исправлять
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Как убрать сообщение об ошибке?
    #40100612
Диана Орел
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А я не поняла :(.
Объясните, пожта.
У меня 3 процедуры, которые должны либо выполниться все 3 (при чем если во 2й процедуре произошла ошибка, то это тоже результат), либо произойти откат. я пишу:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
BEGIN TRAN
EXEC PROC1
BEGIN TRY
EXEC PROC2
END TRY
BEGIN CATCH
...
END CATCH
EXEC PROC3
COMMIT TRAN



при такой конструкции будет автоматический откат, если случится исключение в 1й и 2й процедуре?
...
Рейтинг: 0 / 0
Как убрать сообщение об ошибке?
    #40100625
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Диана Орел
А я не поняла :(.
Объясните, пожта.
У меня 3 процедуры, которые должны либо выполниться все 3 (при чем если во 2й процедуре произошла ошибка, то это тоже результат), либо произойти откат. я пишу:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
BEGIN TRAN
EXEC PROC1
BEGIN TRY
EXEC PROC2
END TRY
BEGIN CATCH
...
END CATCH
EXEC PROC3
COMMIT TRAN



при такой конструкции будет автоматический откат, если случится исключение в 1й и 2й процедуре?



Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
set xact_abort on;

BEGIN TRAN
EXEC PROC1
BEGIN TRY
EXEC PROC2
END TRY
BEGIN CATCH
...
END CATCH
EXEC PROC3
COMMIT TRAN



Вот так сотрясется автоматический откат.
Засада в том, что catch не сработает.

Надо так
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
BEGIN TRAN
set xact_abort on;
EXEC PROC1
set xact_abort off;
BEGIN TRY
EXEC PROC2
END TRY
BEGIN CATCH
...
END CATCH
set xact_abort on;
EXEC PROC3
COMMIT TRAN
...
Рейтинг: 0 / 0
Как убрать сообщение об ошибке?
    #40100683
Диана Орел
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
aleks222,

спасибо
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как убрать сообщение об ошибке?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]