Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy do:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
System Platform Analitycznych (PDW)
Baza danych SQL w Microsoft Fabric
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. |