czwartek, 21 października 2010

Wyświetlanie komunikatów błędów w XL (i nie tylko).

Nie raz, nie dwa, zdarzało się, iż podczas pracy z XL (np. przy wywoływaniu wydruku) przywitał nas komunikat o błędzie. Problem w tym, że sam błąd nie był opisany, a zamiast tego witał nas komunikat "Kod dostawcy bazy danych = X", gdzie X jest liczbą naturalną. Jeśli nie wiemy co tak naprawdę oznacza dany komunikat, warto zapoznać się z tabelą systemową sys.messsages w kontekście bazy danych .  Tak więc wywołanie z poziomu np. SSMS:
        SELECT     message_id, language_id, severity, is_event_logged, text
       FROM         sys.messages

zwróci nam informację o wszystkich błędach zdefiniowanych we wspomnianej tabeli.
Skoro wyskoczył nam ten jeden konkretny (X) to najłatwiej znaleźć go poprzez dopisanie do naszego zapytania klauzuli WHERE (WHERE message_id = X) i ograniczenie wyników do języka, który nie wygląda dla nas jak stado znaczków - w moim przypadku wybrałem angielski (AND language_ID = 1033). Otrzymamy więc prościutkie zapytanie, np.
       SELECT     severity, text
       FROM         sys.messages
       WHERE language_id = 1033 AND message_id = 120

które zwróci nam informację na ile poważny jest błąd (kolumna severity) i jego opis (text). Dla ciekawskich zamieszczam jeszcze link do opisu tabeli wg. Microsoft-u http://msdn.microsoft.com/en-us/library/ms187382.aspx.

Niezbyt obszerny ten post, ale od czegoś trzeba zacząć :)

Brak komentarzy:

Prześlij komentarz