Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как убрать сообщение об ошибке? / 16 сообщений из 16, страница 1 из 1
30.08.2010, 16:43
    #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
30.08.2010, 16:45
    #36819547
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как убрать сообщение об ошибке?
ИльдарSR
Во время выполнения Хранимой процедуры появляется (в QA )вот такое сообщение,как сделать так,чтобы оно не выводилось(визуально)

переписать код правильно
или написать свое клиентское приложение, которое не будет отображать вам сообщения сервера
...
Рейтинг: 0 / 0
31.08.2010, 13:24
    #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
31.08.2010, 13:26
    #36821048
i2akai1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как убрать сообщение об ошибке?
ИльдарSR,

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

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

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

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

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

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

Типа коммита на бегин хочет.
Скорее уже ничего не хочет )
...
Рейтинг: 0 / 0
31.08.2010, 13:43
    #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
31.08.2010, 13:43
    #36821111
ИльдарSR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как убрать сообщение об ошибке?
Боюсь спросить,и как обойти данную ситуацию,потому что хранимую процедуру bc_LocalReserve,будет запускать другая хп cctrl_StartSession,которая и выдает данную ситуацию?
...
Рейтинг: 0 / 0
31.08.2010, 13:45
    #36821115
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как убрать сообщение об ошибке?
ИльдарSRБоюсь спросить,и как обойти данную ситуацию,потому что хранимую процедуру bc_LocalReserve,будет запускать другая хп cctrl_StartSession,которая и выдает данную ситуацию?
Код надо писать еще логически правильно. А не только синтаксически.
...
Рейтинг: 0 / 0
31.08.2010, 14:25
    #36821259
ИльдарSR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как убрать сообщение об ошибке?
Glory , понял Спасибо всем за ответы,буду исправлять
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
29.09.2021, 11:08
    #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
29.09.2021, 11:46
    #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
29.09.2021, 14:37
    #40100683
Диана Орел
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как убрать сообщение об ошибке?
aleks222,

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


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