Udostępnij za pośrednictwem


Obsługa błędów i komunikatów

Gdy aplikacja wywołuje funkcja ODBC, sterownik wykonuje funkcja i zwraca informacje diagnostyczne na dwa sposoby: Kod zwrotny wskazuje ogólną sukces lub Niepowodzenie funkcja ODBC i diagnostycznych rekordy zawierają szczegółowe informacje dotyczące funkcja.Diagnostyczne rekordy zawierają rekordu nagłówka i stan rekordy.Nawet jeśli funkcja się powiedzie, zwracana jest co najmniej jeden rekord diagnostyczne rekord nagłówka.

Informacje diagnostyczne jest używane w rozwoju czas do połowu błędy programowania, takich jak nieprawidłowe dojścia i błędy składni w instrukcjach SQL zakodowane.Jest również używany przy uruchomieniu czas do połowu Uruchom -czas błędów i ostrzeżeń, takich jak obcięcie danych reguły naruszenia i błędy składni w instrukcjach SQL wprowadzone przez użytkownika.Logika programu jest ogólnie oparte na zwracanych kodów.

Na przykład po aplikacja wywołuje SQLFetch do pobierania wierszy zestaw wyników, kod zwrotny wskazuje czy (SQL_NO_DATA), osiągnięto koniec zestaw wyników, jeśli wszystkie komunikaty informacyjne zwrócono (wartość SQL_SUCCESS_WITH_INFO), lub jeśli (wartość SQL_ERROR) wystąpił błąd.

Jeśli SQL Server sterownik ODBC macierzysty klient zwraca cokolwiek innego niż SQL_SUCCESS, aplikacja może wywołać SQLGetDiagRec wszelkie informacyjna pobieranie lub komunikaty o błędach.Użyj SQLGetDiagRec do przewijania w górę i niedziałający wiadomości zestaw , jeśli istnieje więcej niż jeden komunikat.

Kod zwrotny SQL_INVALID_HANDLE zawsze wskazuje błąd programistyczny i nigdy nie powinno wystąpić przy uruchomieniu czas.Podać wszystkie kody powrotne Uruchom -czas informacji, chociaż wartość SQL_ERROR może wskazywać na błąd programistyczny.

The original Microsoft SQL Server native API, DB-Library for C, allows an application to install callback error-handling and message-handling functions that return errors or messages.Niektóre Transact-SQL instrukcje, takie jak drukowanie, RAISERROR, DBCC i zestawu, zwracają wyniki ich funkcja biblioteki DB wiadomości obsługi zamiast do zestaw wyniki.Interfejsu API ODBC ma jednak ma możliwości wywołanie zwrotne.Gdy SQL Server sterownik ODBC macierzystym klienta wykrywa wiadomości pochodzących z powrotem z SQL Server, ustawia kod zwrotny ODBC wartość SQL_SUCCESS_WITH_INFO lub wartość SQL_ERROR i zwraca wiadomość jako jeden lub więcej diagnostyczne rekordów.Dlatego dla tych kody zwrotne i wywołania aplikacji ODBC należy dokładnie przetestować SQLGetDiagRec do pobierania danych wiadomości.

Aby uzyskać informacje dotyczące śledzenia błędów, zobacz Śledzenie dostępu do danych.

Zobacz także

Koncepcje