Détail des erreurs SQL Server
S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)
OLE DB Driver pour SQL Server définit l'interface ISQLServerErrorInfo spécifique au fournisseur. 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. |