Sdílet prostřednictvím


Podrobnosti o chybě SQL Serveru

Platí na:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytický platformový systém (PDW)SQL databáze v Microsoft Fabric

Stáhnout ovladač OLE DB

Ovladač OLE DB pro SQL Server definuje rozhraní pro chyby specifické pro poskytovatele ISQLServerErrorInfo. Rozhraní vrací více detailů o chybě SQL Serveru a je cenné, když selže provádění příkazů nebo operace s řádky.

Existují dva způsoby, jak získat přístup k rozhraní ISQLServerErrorInfo .

Spotřebitel může zavolat IErrorRecords::GetCustomerErrorObject , aby získal ukazatel ISQLServerErrorInfo , jak je ukázáno v následujícím vzorku kódu. (Není potřeba získávat ISQLErrorInfo.)Oba objekty, ISQLErrorInfo i ISQLServerErrorInfo , jsou vlastní chybové objekty OLE DB, přičemž rozhraní pro získání informací o chybách serveru, včetně detailů jako název procedury a čísla řádků, je ISQLServerErrorInfo .

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

Dalším způsobem, jak získat ukazatel ISQLServerErrorInfo , je zavolat metodu QueryInterface na již získaném ukazateli ISQLErrorInfo . Všimněte si, že protože ISQLServerErrorInfo obsahuje nadmnožinu informací dostupných z ISQLErrorInfo, dává smysl jít přímo na ISQLServerErrorInfo přes GetCustomerErrorObject.

Rozhraní ISQLServerErrorInfo zpřístupňuje jednu členskou funkci, ISQLServerErrorInfo::GetErrorInfo. Funkce vrací ukazatel na strukturu SSERRORINFO a ukazatel na buffer řetězců. Oba ukazatele odkazují na paměť, kterou musí uživatel deallokovat pomocí metody IMalloc::Free .

Členové struktury SSERRORINFO jsou spotřebitelem interpretováni následovně.

Člen Description
pwszMessage Chybová zpráva SQL Server. Identické s řetězcem vráceným v IErrorInfo::GetDescription.
pwszServer Název instance SQL Serveru pro danou relaci.
pwszProcedure Pokud je to vhodné, název postupu, ze kterého chyba vznikla. Jinak prázdný řetězec.
lNative SQL Server nativní číslo chyby. Identická s hodnotou vrácenou v parametru plNativeErrorv ISQLErrorInfo::GetSQLInfo.
bState Chybová zpráva o stavu SQL Serveru.
bClass Závažnost chybové zprávy SQL Server.
wLineNumber Pokud je to relevantní, číslo řádku uložené procedury, na které chyba nastala.

Viz také

Chyby
RAISERROR (Transact-SQL)