Dettagli relativi agli errori SQL Server

Il provider OLE DB di SQL Server Native Client definisce l'interfaccia degli errori specifica del provider ISQLServerErrorInfo. L'interfaccia restituisce maggiori dettagli relativi agli errori SQL Server e risulta molto utile quando operazioni di esecuzione di comandi o del set di righe non riescono.

È possibile accedere all'interfaccia ISQLServerErrorInfo in due modi.

Il consumer può chiamare IErrorRecords::GetCustomerErrorObject per ottenere un puntatore ISQLServerErrorInfo, come mostrato nell'esempio di codice seguente. Non è necessario ottenere ISQLErrorInfo. Sia ISQLErrorInfo sia ISQLServerErrorInfo sono oggetti errore OLE DB personalizzati, in cui ISQLServerErrorInfo rappresenta l'interfaccia da utilizzare per ottenere informazioni sugli errori del server, inclusi dettagli quali i numeri di riga e il nome di procedura.

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

Un altro modo per ottenere un puntatore ISQLServerErrorInfo consiste nel chiamare il metodo QueryInterface su un puntatore ISQLErrorInfo già ottenuto. Dal momento che ISQLServerErrorInfo contiene un superset delle informazioni disponibili da ISQLErrorInfo, è consigliabile accedere direttamente a ISQLServerErrorInfo mediante GetCustomerErrorObject.

L'interfaccia ISQLServerErrorInfo espone una funzione membro, ISQLServerErrorInfo::GetErrorInfo. La funzione restituisce un puntatore a una struttura SSERRORINFO e un puntatore a un buffer di stringhe. Entrambi i puntatori fanno riferimento a una memoria che il consumer deve deallocare utilizzando il metodo IMalloc::Free .

I membri di struttura SSERRORINFO vengono interpretati dal consumer come segue.

Membro

Descrizione

pwszMessage

Messaggio di errore di SQL Server. Identico alla stringa restituita in IErrorInfo::GetDescription.

pwszServer

Nome dell'istanza di SQL Server per la sessione.

pwszProcedure

Se appropriato, restituisce il nome della stored procedure in cui ha avuto origine l'errore. In caso contrario, una stringa vuota.

lNative

Numero di errore nativo di SQL Server. Identico al valore restituito nel parametro plNativeError di ISQLErrorInfo::GetSQLInfo.

bState

Stato di un messaggio di errore di SQL Server.

bClass

Gravità di un messaggio di errore di SQL Server.

wLineNumber

Quando è applicabile, restituisce il numero di riga di una stored procedure in cui si è verificato l'errore.

Vedere anche

Riferimento

Concetti