Megosztás:


SQL Server hiba részletei

Vonatkozik a következőkre:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalitikai Platform System (PDW)SQL adatbázis a Microsoft Fabric-ben

OLE DB-illesztő letöltése

Az SQL Server OLE DB Driver határozza meg a szolgáltató-specifikus hibainterfészt, az ISQLServerErrorInfo-t. Az interfész részletesebb információkat ad az SQL Server hibájáról, és értékes, ha parancsvégrehajtás vagy sorkészlet műveletek sikertelenül működnek.

Kétféleképpen lehet hozzáférni az ISQLServerErrorInfo interfészhez.

A fogyasztó hívhatja az IErrorRecords::GetCustomerErrorObject parancsot, hogy ISQLServerErrorInfo mutatót kapjon, ahogy azt a következő kódminta is mutatja. (Nincs szükség ISQLErrorInfo beszerzésére.)Mind az ISQLErrorInfo , mind az ISQLServerErrorInfo egyedi OLE adatbázis hibaobjektumok, az ISQLServerErrorInfo pedig az interfész, amellyel a szerver hibáinak információinak megszerzésére szolgál, beleértve az eljárás nevét és sorszámait is.

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

Egy másik módja annak, hogy megszerezd az ISQLServerErrorInfo mutatót, ha egy már megszerzett ISQLErrorInfo mutatón hívod a QueryInterface metódust. Fontos megjegyezni, hogy mivel az ISQLServerErrorInfo tartalmazza az ISQLErrorInfo-tól elérhető információk egy felszínhalmazát, logikus közvetlenül az ISQLServerErrorInfo-hoz menni a GetCustomerErrorObject segítségével.

Az ISQLServerErrorInfo interfész egy tagfüggvényt tár fel: ISQLServerErrorInfo::GetErrorInfo. A függvény egy mutatót ad vissza egy SSERRORINFO szerkezethez, egy mutatót pedig egy string pufferhez. Mindkét mutató arra a memóriára hivatkozik, amelyet a fogyasztónak az IMalloc::Free módszerrel kell szabadítania.

Az SSERRORINFO struktúra tagjait a fogyasztó a következőképpen értelmezi.

Tag Description
pwszMessage SQL Server hibaüzenet. Megegyezik az IErrorInfo::GetDescription visszaadott stringjével.
pwszServer Az SQL Server példányának neve az üléshez.
pwszEljárás Ha megfelelő, az eljárás neve, amelyben a hiba keletkezett. Egyébként üres lánc.
lNative SQL Server natív hibaszám. Megegyezik az ISQLErrorInfo::GetSQLInfoplNativeError paraméterében visszaadott értékkel.
bState SQL Server állapota hibaüzenet.
bOsztály SQL Server hibaüzenet súlyossága.
wLineNumber Ha alkalmazható, az a sorszám egy tárolt eljárásról, amelyen a hiba történt.

Lásd még:

hibák
RAISERROR (Transact-SQL)