Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как ловить месэдж ошибки на сервере? Помогите! / 11 сообщений из 11, страница 1 из 1
22.10.2001, 13:26
    #32015751
Mycca
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как ловить месэдж ошибки на сервере? Помогите!
Помогите!
Пример: запускаете такое "select gh from kj" а получаете
такое: Server: Msg 208, Level 16, State 1, Line 1
Invalid object name 'kj'.
...и это логично. Теперь вопрос: хочу перехватить этот самый Msg именно в этом виде и запихнуть в таблицу. Номер ошибки не есть достаточно . Подскажите, что делать.
...
Рейтинг: 0 / 0
23.10.2001, 08:51
    #32015807
Александр Гладченко
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как ловить месэдж ошибки на сервере? Помогите!
...
Рейтинг: 0 / 0
23.10.2001, 10:46
    #32015816
Mycca
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как ловить месэдж ошибки на сервере? Помогите!
Саша, простите пожалуйсто, но можно то же только для ламера: куды, чаво и зачем?
...
Рейтинг: 0 / 0
23.10.2001, 13:20
    #32015826
SergSuper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как ловить месэдж ошибки на сервере? Помогите!
2 Mycca
Если "только для ламера" - то это сделать невозможно.

Хотя в принципе ошибку можно поймать внутри сервера, написав свою хр_процедуру, но это довольно сложно и никто так не делает.

А зачем это Вам надо?
...
Рейтинг: 0 / 0
24.10.2001, 06:49
    #32015860
tabloid
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как ловить месэдж ошибки на сервере? Помогите!
В переменной @@ERROR хранится номер произошедшей ошибки, а в таблице sysmessages базы Master можно получить описание этой ошибки
...
Рейтинг: 0 / 0
24.10.2001, 07:00
    #32015861
Mycca
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как ловить месэдж ошибки на сервере? Помогите!
2СержСупер: ну скажем не совсем ламера, но по ссылке (см. выше) я ничего полезного не нашел.

2таблоид: близко, но проблема что в sysmessages хронятся "общие" формулировки, без имен объектов. То есть в моем примере это выглядет где-то так : Invalid object name '%d', а мне нужно вместо %d конкретное имя .
...
Рейтинг: 0 / 0
24.10.2001, 08:09
    #32015875
tabloid
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как ловить месэдж ошибки на сервере? Помогите!
Тогда вопрос: "А зачем это Вам надо?"
...
Рейтинг: 0 / 0
24.10.2001, 08:48
    #32015884
SergSuper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как ловить месэдж ошибки на сервере? Помогите!
2 Mycca
Ссылку давал не я, так что тут претензии не ко мне.

Для "не совсем ламера" это тоже невозможно.

Если Вам не лень копаться в архитектуре сервера, наберите в BOL топик "ODS", прочитайте внимательно всё что там написано, и если Вы всё поймёте, то напишите расширенную процедуру, которая бы вызывалась примерно так:
exec xp_mussa_execute "select gh from kj"
а в результате записывала бы что надо куда Вам надо.

В принципе это реально. Но мне за 6 лет так и не захотелось так сделать. Может чем придумывать мудрёные задачи, Вы всё-таки напишите что Вам надо и мы вместе подумаем как это решить? Такое чувство, что Вы не с того начинаете.
...
Рейтинг: 0 / 0
24.10.2001, 13:10
    #32015913
Mycca
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как ловить месэдж ошибки на сервере? Помогите!
Зачем надо?
Во-первых начальство хочет.
Во-вторых: клиент запускает процедуры для загрузки данных в warehouse. Все это бежит несколько часов. Ошибки загрузки (коих может быть немало) остаются скрытыми. Максимум что можно узнать это имя "проштрафившейся" процедуры. Идея: написать процедуру, которая вызывалась бы в "опасных" местах (после insert-ов, update-ов и т.д.) и заносило сообщение об ошибке в таблицу. Номер ошибки не достаточен ибо несет общую информацию, а надо более полную-какой объект ведет себя плохо и почему собственно.
Вот так!
...
Рейтинг: 0 / 0
24.10.2001, 14:08
    #32015919
SergSuper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как ловить месэдж ошибки на сервере? Помогите!
2 Mycca
>Во-первых начальство хочет.
Я так понимаю, это была шутка. На мой взгяд такие желания у начальства - из разряда извращений.

>Во-вторых: клиент запускает процедуры для загрузки данных в warehouse. Все это бежит несколько часов. Ошибки загрузки (коих может быть немало) остаются скрытыми.

Если Вы имели ввиду ошибки компиляции, то они должны быть выявлены еще до стадии тестирования. Если имеется ввиду ошибки по ходу выполнения, то мне кожется проще было бы вести некий протокол, куда записывать в начале и в конце выполнения длинных процессов нечто о том, что будет делаться и что сделалось.
...
Рейтинг: 0 / 0
24.10.2001, 14:41
    #32015924
Mycca
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как ловить месэдж ошибки на сервере? Помогите!
2 Серж: нет, это не шутка . Начальство есть сам программер, т.е. извращенец по определению.
О протоколе....идея обсуждалась, но она не удовлетворяет основного условия: точное определение места и причины ошибки.
Поделюсь идеей которая сейчас "прорабатывается": вытаскивание инфо из буффера с помощью DBCC OUTPUTBUFFER(@@spid) и последующей обработкой. Хотя и здесь есть недостатки...
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как ловить месэдж ошибки на сервере? Помогите! / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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