Список форумов Акцент Акцент
официальный форум разработчика
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

RAISERROR

 
Начать новую тему   Ответить на тему    Список форумов Акцент -> Акцент 7.0
Предыдущая тема :: Следующая тема  
Автор Сообщение
IceZ



Зарегистрирован: 28.03.2005
Сообщения: 69
Откуда: Киев

СообщениеДобавлено: Сб Фев 25, 2006 5:06 pm    Заголовок сообщения: RAISERROR Ответить с цитатой

Написал триггер. Пытаюсь с его помощью вывести текстовое описание ошибки
Create Trigger some trigger
ON JOURNAL FOR INSERT
AS
........
IF isnull(@COUNT)
begin
RAISERROR ('Вы в чем то ошиблись!',16,1)
ROLLBACK TRAN
end

Но в Акценте в момент "положительной реакции" триггера на вставку
пишется что информация об ошибке не доступна.
Что делать?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
olimp
Site Admin


Зарегистрирован: 10.03.2005
Сообщения: 2056

СообщениеДобавлено: Сб Фев 25, 2006 6:30 pm    Заголовок сообщения: Re: RAISERROR Ответить с цитатой

IceZ писал(а):
Написал триггер. Пытаюсь с его помощью вывести текстовое описание ошибки
Create Trigger some trigger
ON JOURNAL FOR INSERT
AS
........
IF isnull(@COUNT)
begin
RAISERROR ('Вы в чем то ошиблись!',16,1)
ROLLBACK TRAN
end

Но в Акценте в момент "положительной реакции" триггера на вставку
пишется что информация об ошибке не доступна.
Что делать?


Запиши ошибку в таблицу, а потом прочти из VBS
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
kris



Зарегистрирован: 12.01.2006
Сообщения: 62

СообщениеДобавлено: Пн Фев 27, 2006 10:08 am    Заголовок сообщения: Re: RAISERROR Ответить с цитатой

olimp писал(а):
IceZ писал(а):
Написал триггер. Пытаюсь с его помощью вывести текстовое описание ошибки
Create Trigger some trigger
ON JOURNAL FOR INSERT
AS
........
IF isnull(@COUNT)
begin
RAISERROR ('Вы в чем то ошиблись!',16,1)
ROLLBACK TRAN
end

Но в Акценте в момент "положительной реакции" триггера на вставку
пишется что информация об ошибке не доступна.
Что делать?


Запиши ошибку в таблицу, а потом прочти из VBS

Вообще-то было бы неплохо хоть минимальную обработку ошибок при работе с SQL реализовать в Акценте... Я имею ввиду именно "Информация об ошибке недоступна". Очень часто оно вылазит без предупреждения при обработке больших массивов больших документов. В результате (по моим личным наблюдениям) получаем примерно 1 "кривой" документ на 5000 нормальных. А поскольку операция обработки документов (в данном случае) проводится в автоматическом режиме, то пользователю, прыгающему на месте от счастья, приходится лопатить эти 5000 документов в поисках глючного. Тем более что где именно у него глюк - неизвестно.

Может быть не по теме и немного путано, но хотелось бы это увидеть хоть в каком-то виде в той же 7.40...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
taa



Зарегистрирован: 11.03.2005
Сообщения: 135

СообщениеДобавлено: Пн Фев 27, 2006 10:28 am    Заголовок сообщения: Re: RAISERROR Ответить с цитатой

IceZ писал(а):
IF isnull(@COUNT)

Для начала if @COUNT is null
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
IceZ



Зарегистрирован: 28.03.2005
Сообщения: 69
Откуда: Киев

СообщениеДобавлено: Пн Фев 27, 2006 6:23 pm    Заголовок сообщения: Re: RAISERROR Ответить с цитатой

taa писал(а):
IceZ писал(а):
IF isnull(@COUNT)

Для начала if @COUNT is null

Спасибо.
Но не стоит себя утруждать подобными комментариями.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
taa



Зарегистрирован: 11.03.2005
Сообщения: 135

СообщениеДобавлено: Вт Фев 28, 2006 2:34 pm    Заголовок сообщения: Re: RAISERROR Ответить с цитатой

IceZ писал(а):
Но не стоит себя утруждать подобными комментариями.

Вообще то это было указание на конкретную ошибку...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
IceZ



Зарегистрирован: 28.03.2005
Сообщения: 69
Откуда: Киев

СообщениеДобавлено: Вт Фев 28, 2006 4:50 pm    Заголовок сообщения: Re: RAISERROR Ответить с цитатой

taa писал(а):
IceZ писал(а):
Но не стоит себя утруждать подобными комментариями.

Вообще то это было указание на конкретную ошибку...

Просто поторопился когда писал пример кода в форум. Ведь не весь триггер же вас интересует Wink .
Да и инетерсовало меня совсем другое. Казалось бы, после вызова RaiseError у пользователя должен возникнуть msgbox с заданным в триггере текстом ошибки. А вместо него возникает "Информация об ошибке недоступна". Т.ё триггер сработал, но моё описание ошибки пользователю не дал
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
olimp
Site Admin


Зарегистрирован: 10.03.2005
Сообщения: 2056

СообщениеДобавлено: Вт Фев 28, 2006 5:40 pm    Заголовок сообщения: Re: RAISERROR Ответить с цитатой

Это известная проблема OLE DB. Если ошибка (и Raise в том числе) просто так, то ловится без проблем, а если внутри транзакции - то болт - The statement has been terminated.

MS говорит - переходите на ADO.NET, а в OLE-DB уже ничего менять не будут...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Oleg



Зарегистрирован: 05.07.2005
Сообщения: 9
Откуда: Енакиево

СообщениеДобавлено: Пт Мар 10, 2006 9:11 am    Заголовок сообщения: Ответить с цитатой

Может запоздало...Как обходить странное поведение SQL SERVER можно почитать у Кена Хендерсона:" Проффесиональное руководство по SQL SERVER:хранимые процедуры,ХМL,...." 2005,Питер. Можно найти в Инете ПДФ. Глава 7. Все описать невозможно, нужно читать(чем сейчас и занимаюсь Shocked )
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
olimp
Site Admin


Зарегистрирован: 10.03.2005
Сообщения: 2056

СообщениеДобавлено: Пт Мар 10, 2006 9:18 am    Заголовок сообщения: Ответить с цитатой

Oleg писал(а):
Может запоздало...Как обходить странное поведение SQL SERVER можно почитать у Кена Хендерсона:" Проффесиональное руководство по SQL SERVER:хранимые процедуры,ХМL,...." 2005,Питер. Можно найти в Инете ПДФ. Глава 7. Все описать невозможно, нужно читать(чем сейчас и занимаюсь Shocked )


Там про странности OLE DB тоже есть ?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
fly



Зарегистрирован: 31.05.2005
Сообщения: 104

СообщениеДобавлено: Пт Июл 23, 2010 11:38 pm    Заголовок сообщения: Ответить с цитатой

поборол 2005 сиквел добавлением опцией немедленного вывода сообщения:

raiserror(@message, 16, 1) with NOWAIT
rollback transaction

В моем случае сообщение перестало выводится после перехода на SQL 2005
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов Акцент -> Акцент 7.0 Часовой пояс: GMT + 2
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2005 phpBB Group