sp_OAGetErrorInfo (Transact-SQL)
Obtient des informations d'erreur OLE Automation.
Conventions de la syntaxe de 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 lot.
- 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.
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.
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. |
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)
Autres ressources
Exemple de script OLE Automation