Delen via


Details van SQL Server-fout

Van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform Systeem (PDW)SQL-database in Microsoft Fabric

OLE DB-stuurprogramma downloaden

De OLE DB Driver voor SQL Server definieert de provider-specifieke foutinterface ISQLServerErrorInfo. De interface geeft meer details terug over een SQL Server-fout en is waardevol wanneer commando-uitvoering of rowset-operaties falen.

Er zijn twee manieren om toegang te krijgen tot de ISQLServerErrorInfo-interface .

De consument kan IErrorRecords::GetCustomerErrorObject aanroepen om een ISQLServerErrorInfo-pointer te verkrijgen, zoals weergegeven in het volgende codevoorbeeld. (Het is niet nodig om ISQLErrorInfo te verkrijgen.) Zowel ISQLErrorInfo als ISQLServerErrorInfo zijn aangepaste OLE DB-foutobjecten, waarbij ISQLServerErrorInfo de interface is om informatie over serverfouten te verkrijgen, inclusief details zoals procedurenaam en regelnummers.

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

Een andere manier om een ISQLServerErrorInfo-pointer te krijgen is door de QueryInterface-methode aan te roepen op een reeds verkregen ISQLErrorInfo-pointer . Let op dat omdat ISQLServerErrorInfo een superset bevat van de informatie die beschikbaar is van ISQLErrorInfo, het logisch is om direct naar ISQLServerErrorInfo te gaan via GetCustomerErrorObject.

De interface ISQLServerErrorInfo , maakt één lidfunctie beschikbaar, ISQLServerErrorInfo::GetErrorInfo. De functie geeft een pointer terug naar een SSERRORINFO-structuur en een pointer naar een stringbuffer. Beide pointers verwijzen naar geheugen dat de consument moet dealloceren met de IMalloc::Free-methode .

SSERRORINFO-structuurelementen worden door de consument als volgt geïnterpreteerd.

Lid Description
pwszMessage SQL Server foutmelding. Identiek aan de string die in IErrorInfo::GetDescription wordt teruggegeven.
pwszServer Naam van de instantie van SQL Server voor de sessie.
pwszProcedure Indien passend, de naam van de procedure waaruit de fout is ontstaan. Een lege string anders.
Inheems SQL Server native foutnummer. Identiek aan de waarde die wordt teruggegeven in de parameter plNativeError van ISQLErrorInfo::GetSQLInfo.
bState Status van een SQL Server-foutmelding.
bClass Ernst van een SQL Server-foutmelding.
wLineNumber Indien van toepassing, het regelnummer van een opgeslagen procedure waarop de fout is opgetreden.

Zie ook

Fouten
RAISERROR (Transact-SQL)