Condividi tramite


ISQLServerErrorInfo::GetErrorInfo (provider OLE DB di Native Client)

Si applica a: SQL Server database SQL di Azure Istanza gestita di SQL di Azure azure Synapse Analytics Analytics Platform System (PDW)

Importante

SQL Server Native Client (spesso abbreviato SNAC) è stato rimosso da SQL Server 2022 (16.x) e da SQL Server Management Studio 19 (SSMS). Il provider OLE DB di SQL Server Native Client (SQLNCLI o SQLNCLI11) e il provider OLE DB legacy Microsoft per SQL Server (SQLOLEDB) non sono consigliati per lo sviluppo di nuove applicazioni. In futuro, passare al nuovo driver Microsoft OLE DB (MSOLEDBSQL) per SQL Server.

Restituisce un puntatore a una struttura SSERRORINFO del provider OLE DB di SQL Server Native Client contenente i dettagli dell'errore di SQL Server.

Il provider OLE DB di SQL Server Native Client definisce l'interfaccia di errore ISQLServerErrorInfo . Questa interfaccia restituisce i dettagli di un errore di SQL Server, inclusi la gravità e lo stato.

Sintassi

  
HRESULT GetErrorInfo(  
   SSERRORINFO**ppSSErrorInfo,  
   OLECHAR**ppErrorStrings);  

Argomenti

ppSSErrorInfo[out]
Puntatore a una struttura SSERRORINFO. Se il metodo non riesce o non sono disponibili informazioni di SQL Server associate all'errore, il provider non alloca memoria e verifica che l'argomento ppSSErrorInfo sia un puntatore Null nell'output.

ppErrorStrings[out]
Puntatore a un puntatore stringa carattere Unicode. Se il metodo non riesce o non sono disponibili informazioni di SQL Server associate a un errore, il provider non alloca memoria e verifica che l'argomento ppErrorStrings sia un puntatore Null nell'output. Liberando l'argomento ppErrorStrings con il metodo IMalloc::Free, vengono liberati i tre singoli membri della stringa della struttura SSERRORINFO restituita, in quanto la memoria è allocata in un blocco.

Valori del codice restituito

S_OK
Il metodo è riuscito.

E_INVALIDARG
L'argomento ppSSErrorInfo o ppErrorStrings era NULL.

E_OUTOFMEMORY
Il provider OLE DB di SQL Server Native Client non è riuscito ad allocare memoria sufficiente per completare la richiesta.

Osservazioni:

Il provider OLE DB di SQL Server Native Client alloca memoria per le stringhe SSERRORINFO e OLECHAR restituite tramite i puntatori passati dal consumer. Il consumer deve deallocare questa memoria tramite il metodo IMalloc::Free quando l'accesso ai dati dell'errore non è più necessario.

La struttura SSERRORINFO viene definita nel modo seguente:

typedef struct tagSSErrorInfo  
   {  
   LPOLESTR pwszMessage;  
   LPOLESTR pwszServer;  
   LPOLESTR pwszProcedure;  
   LONG lNative;  
   BYTE bState;  
   BYTE bClass;  
   WORD wLineNumber;  
   }  
SSERRORINFO;  
Membro Descrizione
pwszMessage Messaggio di errore da SQL Server. Il messaggio viene restituito attraverso il metodo IErrorInfo::GetDescription.
pwszServer Nome dell'istanza di SQL Server in cui si è verificato l'errore.
pwszProcedure Nome della stored procedure che genera l'errore se esso si è verificato all'interno della stessa, in caso contrario, una stringa vuota.
lNative Numero di errore di SQL Server. Il numero di errore è identico a quello restituito nel parametro plNativeError del metodo ISQLErrorInfo::GetSQLInfo.
bState Stato dell'errore di SQL Server.
bClass Gravità dell'errore di SQL Server.
wLineNumber Quando applicabile, riga di una stored procedure di SQL Server che ha generato il messaggio di errore. Se non è coinvolta alcuna procedura, il valore predefinito è 1.

I puntatori nella struttura fanno riferimento agli indirizzi nella stringa restituita nell'argomento ppErrorStrings.

Vedi anche

RAISERROR (Transact-SQL)