Udostępnij za pośrednictwem


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

Jeśli aplikacja wywoła funkcja ODBC, sterownik wykonuje tę funkcja i zwraca informacje diagnostyczne na dwa sposoby: Zwrócony kod wskazuje ogólny Powodzenie lub Niepowodzenie funkcja ODBC i diagnostyczne rekordy zawierają szczegółowe informacje o tej funkcja. Diagnostyczne rekordy zawierają rekordu nagłówka i stan rekordów.Nawet jeśli funkcja się powiedzie, zwracana jest co najmniej jeden rekord diagnostyczne rekordu nagłówka.

Informacje diagnostyczne jest używane w rozwoju czas aby wykryć błędy programowania, takich jak nieprawidłowe dojścia i błędy składni w ustalonych instrukcji SQL.Służy ona również przy uruchomieniu czas aby wychwycić wykonywania-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.Zwykle oparta jest na kody powrotne logika programu.

Na przykład po wywołuje aplikacji SQLFetch , aby pobrać wiersze w wyniku ustawieniu wskazuje kod zwrotny zestaw wyników został osiągnięty koniec (SQL_NO_DATA), jeśli wszystkie komunikaty informacyjne zostały zwrócone (SQL_SUCCESS_WITH_INFO), czy wystąpił błąd (SQL_ERROR).

Jeśli SQL Server Macierzysty sterownik ODBC klient zwraca jakikolwiek inny niż SQL_SUCCESS, aplikacja może wywołać SQLGetDiagRec pobieranie żadnym informacyjnych lub komunikatów o błędach.Użycie SQLGetDiagRec Przewiń listę wiadomości, jeśli istnieje więcej niż jeden komunikat w górę i niedziałający.

Kod powrotny SQL_INVALID_HANDLE zawsze wskazuje błąd programistyczny i nigdy nie powinny być napotkał przy uruchomieniu czas.Inne kody powrotne dostarcza informacji w czasie wykonywania, chociaż 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 PRINT, RAISERROR, DBCC i zestaw, przywrócić ich wyniki funkcja obsługi biblioteki DB wiadomości zamiast zestaw wyników. Interfejsu API ODBC ma jednak ma takie możliwości wywołania zwrotnego.Gdy SQL Server Macierzysty sterownik ODBC Klient wykrywa wiadomości pochodzących z powrotem z SQL Server, ustawia kod zwrotny ODBC SQL_SUCCESS_WITH_INFO lub SQL_ERROR i zwraca wiadomość jako jednego lub większej liczby rekordów diagnostycznych. W związku z tym aplikacji ODBC musi dokładnie przetestować te kody zwrotne i rozmowy SQLGetDiagRec w celu pobrania danych z wiadomości.

Aby uzyskać informacje na temat śledzenia błędów Zobacz Śledzenie dostępu do danych.