sp_OAGetErrorInfo (Transact-SQL)

S’applique à :SQL Server

Obtient des informations d'erreur OLE Automation.

Conventions de la syntaxe Transact-SQL

Syntaxe

  
sp_OAGetErrorInfo [ objecttoken ]  
    [ , source OUTPUT ]   
    [ , description OUTPUT ]   
    [ , helpfile OUTPUT ]   
    [ , helpid OUTPUT ]   

Arguments

objecttoken
Jeton d’objet d’un objet OLE créé précédemment à l’aide de sp_OACreate ou null. Si objecttoken est spécifié, les informations d’erreur de cet objet sont retournées. Si NULL est spécifié, les informations d'erreur sont renvoyées pour l'ensemble du traitement.

SORTIE source
Source des informations d'erreur. Si elle est spécifiée, il doit s’agir d’une variable char, nchar, varchar ou nvarchar locale. Si nécessaire, la valeur renvoyée est tronquée pour s'adapter à la variable locale.

descriptionOUTPUT
Description de l’erreur. Si elle est spécifiée, il doit s’agir d’une variable char, nchar, varchar ou nvarchar locale. Si nécessaire, la valeur renvoyée est tronquée pour s'adapter à la variable locale.

helpfileOUTPUT
Fichier d'aide de l'objet OLE. Si elle est spécifiée, il doit s’agir d’une variable char, nchar, varchar ou nvarchar locale. Si nécessaire, la valeur renvoyée est tronquée pour s'adapter à la variable locale.

HELPIDOUTPUT
ID de contexte du fichier d'aide. S’il est spécifié, il doit s’agir d’une variable int locale.

Remarque

Les paramètres pour cette procédure stockée sont spécifiés par position et non pas par nom.

Codet de retour

0 (succès) ou un nombre différent de zéro (échec), qui représente la valeur entière de HRESULT renvoyée par l'objet OLE Automation.

Pour plus d’informations sur les codes de retour HRESULT, consultez OLE Automation Return Codes and Error Information.

Jeux de résultats

Si aucun paramètre de sortie n'est spécifié, les informations d'erreur sont renvoyées au client sous la forme d'un ensemble de résultats.

Noms de colonne Type de données Description
Error binary(4) Représentation binaire du numéro d'erreur.
Source nvarchar(nn) Source de l'erreur.
Description nvarchar(nn) Description de l’erreur.
Fichier d’aide nvarchar(nn) Fichier d'aide pour la source.
HelpID int ID du contexte de l'aide dans le fichier source d'aide.

Notes

Chaque appel à une procédure stockée OLE Automation (sauf sp_OAGetErrorInfo) réinitialise les informations d’erreur ; par conséquent, sp_OAGetErrorInfo obtient des informations d’erreur uniquement pour l’appel de procédure stockée OLE Automation le plus récent. Notez que, étant donné que sp_OAGetErrorInfo ne réinitialise pas les informations d’erreur, il peut être appelé plusieurs fois pour obtenir les mêmes informations d’erreur.

Le tableau suivant donne la liste des erreurs OLE Automation et leurs causes courantes.

Erreur et HRESULT Cause courante
Type de variable incorrecte (0x80020008) Le type de données d’une valeur Transact-SQL passée en tant que paramètre de méthode ne correspond pas au type de données Microsoft Visual Basic du paramètre de méthode, ou une valeur NULL a été passée en tant que paramètre de méthode.
Nom inconnu (0x8002006) La propriété ou le nom de méthode spécifié n'a pu être trouvé pour l'objet spécifié.
Chaîne de classe non valide (0x800401f3) ProgID ou CLSID spécifié n’est pas inscrit en tant qu’objet OLE sur une instance de SQL Server. Les serveurs OLE Automation personnalisés doivent être inscrits avant de pouvoir être instanciés à l’aide de sp_OACreate. Pour ce faire, utilisez l’utilitaire Regsvr32.exe pour les serveurs in-process (.dll) ou le commutateur de ligne de commande /REGSERVER pour les serveurs locaux (.exe).
Échec de l’exécution du serveur (0x80080005) L'objet OLE spécifié est inscrit comme serveur OLE local (fichier .EXE), mais le fichier .EXE ne peut pas être trouvé ou démarré.
Impossible de trouver le module spécifié (0x8007007e) L'objet OLE spécifié est inscrit comme serveur OLE in-process (fichier .DLL), mais le fichier .DLL ne peut pas être trouvé ou chargé.
Incompatibilité de type (0x80020005) Le type de données d’une variable locale Transact-SQL utilisée pour stocker une valeur de propriété retournée ou une valeur de retour de méthode ne correspond pas au type de données Visual Basic de la propriété ou de la valeur de retour de méthode. La raison peut aussi être que la valeur de retour d'une propriété ou d'une méthode était requise, mais qu'aucune valeur n'a été renvoyée.
Le type de données ou la valeur du paramètre « context » de sp_OACreate n’est pas valide. (0x8004275B) La valeur du paramètre de contexte doit être : 1, 4 ou 5.

Pour plus d’informations sur le traitement des codes de retour HRESULT, consultez OLE Automation Return Codes and Error Information.

Autorisations

Nécessite l’appartenance au rôle serveur fixe sysadmin ou l’autorisation d’exécution directement sur cette procédure stockée. Ole Automation Procedures la configuration doit être activée pour utiliser n’importe quelle procédure système liée à OLE Automation.

Exemples

L'exemple suivant affiche des informations d'erreur OLE Automation.

DECLARE @output varchar(255);  
DECLARE @hr int;  
DECLARE @source varchar(255);  
DECLARE @description varchar(255);  
PRINT 'OLE Automation Error Information';  
EXEC @hr = sp_OAGetErrorInfo @object, @source OUT, @description OUT;  
IF @hr = 0  
BEGIN  
    SELECT @output = '  Source: ' + @source  
    PRINT @output  
    SELECT @output = '  Description: ' + @description  
    PRINT @output  
END  
ELSE  
BEGIN  
    PRINT '  sp_OAGetErrorInfo failed.'  
    RETURN  
END;  

Voir aussi

Procédures stockées OLE Automation (Transact-SQL)
Exemple de script OLE Automation