Condividi tramite


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

Si applica a:SQL ServerDatabase SQL diAzure Istanzagestita di SQL di Azure Azure Synapse Analytics PlatformSystem (PDW)

Importante

SQL Server Native Client (spesso abbreviato SNAC) è stato rimosso da SQL Server 2022 (16.x) e SQL Server Management Studio 19 (SSMS). Non è consigliabile usare sia il provider OLE DB SQL Server Native Client (SQLNCLI o SQLNCLI11) che il provider Microsoft OLE DB legacy per SQL Server (SQLOLEDB). Passare al nuovo Microsoft OLE DB Driver (MSOLEDBSQL) per SQL Server in futuro.

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)