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

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

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

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

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

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

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

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

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


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