Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí na:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytický platformový systém (PDW)
SQL databáze v Microsoft Fabric
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. |