Algorytm postępowania w przypadku natrafienia na komunikat błędu:
- Czytamy komunikat
- Próbujemy go zrozumieć
- Próbujemy rozwiązać problem samodzielnie
- Jeżeli 3. się nie udało, szukamy rozwiązania w Google
- Aplikujemy znalezione rozwiązanie
- Koniec.
Czy powyższy algorytm rozwiązywania problemów z komunikatami błędów ma Twoim zdaniem jakąś lukę logiczną?
Okazuje się, że i owszem: między punktem 4 a 5 brakuje:
4.a: Znajdujemy rozwiązanie w Google
No ale przecież tak oczywiste rzeczy, jak oddychanie, wydalanie czy znajdywanie rzeczy w Google można pominąć, prawda?
Hmmm.
No to weźmy na ten przykład taki błąd numer MDSERR310040:
Jak widać na powyższym obrazku, tekstu nie znaleziono.
Cóż, do licha? Przecież to pochodzi z SQL Server 2012, a więc wersji sprzed czterech lat. I nikt, naprawdę NIKT się nie nadział na taki błąd przede mną?
Zadziwiające.
Końcem końców zajrzałem do procedury, która ten błąd generuje i wykombinowałem o co chodzi: próbowałem programowo zaktualizować rekord w zatwierdzonej ("committed") wersji modelu MDS, czego się robić nie powinno. Zamiast grzecznie zaktualizować rekord, procedura wypluwa błąd, że się nie da i już.
W sumie gdybym przeczytał uważnie komunikat błędu ("Data cannot be loaded into a committed version"), zamiast od razu szukać kodu błędu w Google, to bym MOŻE zrozumiał, o co chodzi. Ale z wrodzonego lenistwa pominąłem kroki 2 i 3 z listy powyżej i skoczyłem od razu do kroku 4.
Jedyną zaletą sytuacji jest to, że od teraz ludzie będą mogli znaleźć ten wpis, szukając tego konkretnego kodu błędu. I - jeżeli potrafią czytać po polsku - może nawet go zrozumieją...
Dla zainteresowanych: rozwiązaniem problemu jest albo (1) sklonowanie modelu do nowej, niezatwierdzonej wersji lub (2) odtworzenie bazy MDS z kopii zapasowej sprzed zatwierdzenia modelu (z oczywistą utratą wszystkich zmian od czasu wykonania tamtej kopii zapasowej) lub też (3) szybka modlitwa i odkrycie równoległego środowiska MDS, ze świeżymi danymi i niezatwierdzonym modelem, a następnie sklonowanie jej do nas. Wszystkie trzy rozwiązania mają sporo wad i niewiele zalet. Dlatego też odradzam (1) korzystania z mechanizmu wersji w MDS oraz (2) zatwierdzania jakichkolwiek modeli.
No chyba, że ktoś lubi.
Lub sąsiad.
Jeżeli chcesz do komentarza wstawić kod, użyj składni:
[code]
tutaj wstaw swój kod
[/code]
Jeżeli zrobisz literówkę lub zmienisz zdanie, możesz edytować komentarz po jego zatwierdzeniu.