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