Udostępnij przez


Szczegóły błędu SQL Server

Dotyczy do:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsSystem Platform Analitycznych (PDW)Baza danych SQL w Microsoft Fabric

pobierz sterownik OLE DB

Sterownik OLE DB dla SQL Server definiuje specyficzny dla dostawcy interfejs błędów ISQLServerErrorInfo. Interfejs zwraca więcej szczegółów na temat błędu SQL Server i jest cenny, gdy wykonanie poleceń lub operacje wierszy zawiodły.

Istnieją dwa sposoby uzyskania dostępu do interfejsu ISQLServerErrorInfo .

Konsument może wywołać IErrorRecords::GetCustomerErrorObject , aby uzyskać wskaźnik ISQLServerErrorInfo , jak pokazano w poniższym przykładzie kodu. (Nie ma potrzeby pozyskiwania ISQLErrorInfo.)Zarówno ISQLErrorInfo , jak i ISQLServerErrorInfo są niestandardowymi obiektami błędów OLE DB, przy czym interfejs służy do pozyskiwania informacji o błędach serwera, w tym takich szczegółów jak nazwa procedury i numery linii.

// Get the SQL Server custom error object.  
if(FAILED(hr=pIErrorRecords->GetCustomErrorObject(  
   nRec, IID_ISQLServerErrorInfo,  
   (IUnknown**)&pISQLServerErrorErrorInfo)))  

Innym sposobem na uzyskanie wskaźnika ISQLServerErrorInfo jest wywołanie metody QueryInterface na już posiadanym wskaźniku ISQLErrorInfo . Należy zauważyć, że ponieważ ISQLServerErrorInfo zawiera nadzbiór informacji dostępnych z ISQLErrorInfo, sensowne jest bezpośrednie przejście do ISQLServerErrorInfo przez GetCustomerErrorObject.

Interfejs ISQLServerErrorInfo udostępnia funkcję jednego członka, ISQLServerErrorInfo::GetErrorInfo. Funkcja zwraca wskaźnik do struktury SSERRORINFO oraz wskaźnik do bufora łańcuchowego. Oba wskaźniki odnoszą się do pamięci, którą użytkownik musi deallokować za pomocą metody IMalloc::Free .

Członkowie struktury SSERRORINFO są interpretowani przez konsumenta w następujący sposób.

Członek Description
pwszMessage Komunikat o błędzie SQL Server. Identyczny z ciągiem zwrotnym w IErrorInfo::GetDescription.
pwszServer Nazwa instancji SQL Server dla sesji.
pwszProcedure Jeśli to stosowne, nazwę procedury, w której błąd się pojawił. W przeciwnym razie pusty ciąg znaków.
lNative SQL Server natywny numer błędu. Identyczna z wartością zwracaną w parametrze plNativeErrorw ISQLErrorInfo::GetSQLInfo.
bState Komunikat o błędzie stanu SQL Servera.
bClass Stopień powagi komunikatu o błędzie SQL Servera.
wLineNumber Gdy dotyczy, numer linii procedury przechowywanej, na której wystąpił błąd.

Zobacz też

Błędy
RAISERROR (Transact-SQL)