Share via


sp_OAGetErrorInfo (Transact-SQL)

Obtient des informations d'erreur OLE Automation.

Icône Lien de rubrique 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éé à l'aide de sp_OACreate ou bien NULL. Si objecttoken est défini, les informations d'erreur pour l'objet sont renvoyées. Si NULL est spécifié, les informations d'erreur sont renvoyées pour l'ensemble du traitement.

  • sourceOUTPUT
    Source des informations d'erreur. Si cet argument est défini, il doit correspondre à une variable locale char, nchar, varchar ou nvarchar. Si nécessaire, la valeur renvoyée est tronquée pour s'adapter à la variable locale.

  • descriptionOUTPUT
    Description de l'erreur. Si cet argument est défini, il doit être une variable locale char, nchar, varchar ou nvarchar. 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 cet argument est défini, il doit correspondre à une variable locale char, nchar, varchar ou nvarchar. Si nécessaire, la valeur renvoyée est tronquée pour s'adapter à la variable locale.

  • helpidOUTPUT
    ID de contexte du fichier d'aide. Si cet argument est défini, il doit être une variable locale int.

    [!REMARQUE]

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

Valeurs des codes 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 Codes de retour OLE Automation et informations sur les erreurs.

Ensembles 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 des colonnes

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.

Helpfile

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 uniquement les informations d'erreur du dernier appel de procédure stockée OLE Automation. Notez que, du fait que la procédure stockée sp_OAGetErrorInfo ne réinitialise pas les informations d'erreur, elle peut être appelée 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

Mauvais type de variable (0x80020008)

Le type de données Transact-SQL transmis sous la forme d'un paramètre de méthode ne correspond pas au type de données Microsoft Visual Basic du paramètre de méthode, ou la valeur NULL a été transmise sous la forme d'un 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)

Le ProgID ou le 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 avec sp_OACreate. Pour cela, utilisez l'utilitaire Regsvr32.exe pour les serveurs in-process (.DLL), ou l'option de ligne de commande /REGSERVER pour les serveurs locaux (.EXE).

Échec d'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é.

Le module spécifié est introuvable (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é.

Discordance des types (0x80020005)

Le type de données d'une variable locale Transact-SQL utilisée pour stocker une valeur de propriété renvoyée ou une valeur de retour de méthode ne correspond pas au type de données Visual Basic de la valeur de retour de la propriété ou de la 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 Codes de retour OLE Automation et informations sur les erreurs.

Autorisations

Nécessite l'appartenance au rôle de serveur fixe sysadmin.

Exemple

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

Référence

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

Exemple de script OLE Automation