Partage via


Détails de l’erreur SQL Server Native Client

S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)

Le fournisseur OLE DB SQL Server Native Client définit l’interface d’erreur spécifique au fournisseur ISQLServerErrorInfo. L'interface retourne davantage de détails sur une erreur SQL Server et s'avère utile en cas d'échec de l'exécution d'une commande ou d'opérations d'ensemble de lignes.

Vous pouvez accéder à l’interface ISQLServerErrorInfo de deux manières.

Le consommateur peut appeler IErrorRecords::GetCustomerErrorObject pour obtenir un pointeur ISQLServerErrorInfo, comme illustré dans l’exemple de code suivant. (Il n’est pas nécessaire d’obtenir ISQLErrorInfo). ISQLErrorInfo et ISQLServerErrorInfo sont tous deux des objets d’erreur OLE DB personnalisés, ISQLServerErrorInfo étant l’interface à utiliser pour obtenir des informations sur les erreurs de serveur, notamment des détails sur le nom de la procédure et les numéros de ligne.

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

L’autre méthode permettant d’obtenir un pointeur ISQLServerErrorInfo consiste à appeler la méthode QueryInterface sur un pointeur ISQLErrorInfo qui a déjà été obtenu. Notez que comme ISQLServerErrorInfo contient un surensemble des informations disponibles auprès de ISQLErrorInfo, il est logique d’accéder directement à ISQLServerErrorInfo via GetCustomerErrorObject.

L’interface ISQLServerErrorInfo expose une fonction membre, ISQLServerErrorInfo::GetErrorInfo. La fonction retourne un pointeur à une structure SSERRORINFO et un pointeur à une mémoire tampon de chaîne. Les deux pointeurs référencent la mémoire que le consommateur doit libérer avec méthode IMalloc::Free.

Les membres de la structure SSERRORINFO sont interprétés par le consommateur comme suit.

Membre Description
pwszMessage Message d'erreur SQL Server. Identique à la chaîne retournée dans IErrorInfo::GetDescription.
pwszServer Nom de l'instance de SQL Server pour la session.
pwszProcedure S'il y a lieu, nom de la procédure d'où provient l'erreur. Sinon, une chaîne vide.
lNative Numéro d'erreur natif SQL Server. Identique à la valeur retournée dans le paramètre plNativeError de ISQLErrorInfo::GetSQLInfo.
bState État d'un message d'erreur SQL Server.
bClass Gravité d'un message d'erreur SQL Server.
wLineNumber S'il y a lieu, numéro de ligne d'une procédure stockée sur laquelle s'est produite l'erreur.

Voir aussi

Erreurs
RAISERROR (Transact-SQL)