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 Piattaforma di strumenti analitici (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.