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 sp_OACreate
de , ou NULL
. Si objecttoken est spécifié, les informations d’erreur de cet objet sont retournées. Si NULL
elle est spécifiée, les informations d’erreur pour l’ensemble du lot sont retournées.
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.
description OUTPUT
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.
helpfile OUTPUT
Fichier d’aide pour 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.
HELPID OUTPUT
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.
Valeurs des codes de retour
0
(réussite) ou nombre différent de zéro (échec) qui est la valeur entière du HRESULT retourné par l’objet OLE Automation.
Pour plus d’informations sur les codes de retour HRESULT, consultez les codes de retour OLE Automation et les informations d’erreur.
Jeu 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.
Nom de la 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. |
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 pour l’appel de procédure stockée OLE Automation le plus récent. Étant donné que 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 |
---|---|
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 NULL valeur 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 pas été 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 sp_OACreate de . Vous pouvez inscrire des serveurs à l’aide de l’utilitaire Regsvr32.exe pour les serveurs in-process (.dll ) ou le /REGSERVER commutateur de ligne de commande pour les serveurs locaux (.exe ). |
Échec de l’exécution du serveur (0x80080005) | L’objet OLE spécifié est inscrit en tant que serveur OLE local (.exe fichier), mais le fichier .exe est introuvable ou démarré. |
Impossible de trouver le module spécifié (0x8007007e) | L’objet OLE spécifié est inscrit en tant que serveur OLE in-process (.dll fichier), mais le fichier .dll est introuvable 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. Ou bien, la valeur de retour d’une propriété ou d’une méthode a été demandée, mais elle ne retourne pas de valeur. |
Le type de données ou la valeur du paramètre « context » n’est sp_OACreate 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 les codes de retour OLE Automation et les informations d’erreur.
autorisations
Nécessite l’appartenance au rôle serveur fixe sysadmin ou l’autorisation d’exécution directement sur cette procédure stockée. L’option de configuration du serveur Procédures Ole Automation 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 OUTPUT,
@description OUTPUT;
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;