Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Le fournisseur OLE DB SQL Server Native Client définit l’interface d’erreur spécifique au fournisseur ISQLServerErrorInfo. L’interface retourne plus de détails sur une erreur SQL Server et est précieuse lorsque les opérations d’exécution de commande ou d’ensemble de lignes échouent.
Il existe deux façons d’obtenir l’accès à l’interface ISQLServerErrorInfo .
Le consommateur peut appeler IErrorRecords ::GetCustomerErrorObject pour obtenir un pointeur ISQLServerErrorInfo , comme indiqué dans l’exemple de code suivant. (Il n’est pas nécessaire d’obtenir ISQLErrorInfo.) ISQLErrorInfo et ISQLServerErrorInfo sont des objets d’erreur OLE DB personnalisés, avec ISQLServerErrorInfo étant l’interface à utiliser pour obtenir des informations sur les erreurs de serveur, notamment des détails tels que le nom de 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)))
Une autre façon d’obtenir un pointeur ISQLServerErrorInfo consiste à appeler la méthode QueryInterface sur un pointeur ISQLErrorInfo déjà obtenu. Notez que, étant donné que ISQLServerErrorInfo contient un super-ensemble des informations disponibles à partir d’ISQLErrorInfo, il est judicieux d’accéder directement à ISQLServerErrorInfo via GetCustomerErrorObject.
L’interface ISQLServerErrorInfo expose une fonction membre, ISQLServerErrorInfo ::GetErrorInfo. La fonction retourne un pointeur vers une structure SSERRORINFO et un pointeur vers une mémoire tampon de chaîne. Les deux pointeurs référencent la mémoire que le consommateur doit libérer à l’aide de la méthode IMalloc ::Free .
Les membres de la structure SSERRORINFO sont interprétés par le consommateur comme suit.
| Membre | Descriptif |
|---|---|
| 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 | Le cas échéant, le nom de la procédure dans laquelle l’erreur provient. Chaîne vide dans le cas contraire. |
| 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 | Le cas échéant, numéro de ligne d’une procédure stockée sur laquelle l’erreur s’est produite. |