Partager via


Objet ErrorRecord (Fournisseur OLE DB pour DB2)

L’objet ErrorRecord est créé en appelant l’interface IErrorRecord sur l’objet ErrorObject. Un objet ErrorObject est créé sur n’importe quelle interface sur n’importe quel objet OLE DB SNA lorsqu’une erreur se produit. L’objet ErrorRecord est utilisé pour récupérer des informations supplémentaires lorsqu’une erreur se produit.

L’interface suivante de l’objet ErrorRecord est prise en charge par la version actuelle de Fournisseur OLE DB Microsoft pour DB2 :

  • IErrorInfo

    Les méthodes d’interface OLE DB retournent les informations d’erreur de deux manières. Le code d’erreur retourné par une méthode d’interface, appelé code de retour, indique la réussite ou l’échec global d’une méthode. Les enregistrements d’erreur fournissent des informations détaillées sur l’erreur, telles qu’une description textuelle de l’erreur, l’identificateur global unique (GUID) de l’interface qui a défini l’erreur et des informations d’erreur spécifiques au fournisseur. Les objets d’erreur dans OLE DB sont une extension des objets d’erreur dans Automation. Ils utilisent la plupart des mêmes mécanismes et peuvent être utilisés comme objets d’erreur Automation.

    Les codes de retour d’erreur OLE DB sont de type HRESULT. Il existe deux classes générales de codes de retour : les codes de réussite et d’avertissement et les codes d’erreur.

    Les codes de réussite et d’avertissement commencent par S_ ou DB_S_ et indiquent que la méthode a réussi. Les codes d’erreur OLE DB standard sont définis dans OLEDBERR. Fichier include H.

    Si le code de retour n’est pas S_OK ou S_FALSE, il est probable qu’une erreur s’est produite à partir de laquelle la méthode a pu récupérer. Par exemple, IRowset ::GetNextRows retourne DB_S_ENDOFROWSET lorsqu’il ne peut pas retourner le nombre de lignes demandé en raison de l’atteinte de la fin de l’ensemble de lignes. Si une seule condition d’avertissement se produit, la méthode retourne le code de cette condition. Si plusieurs conditions d’avertissement se produisent, la méthode décrit la hiérarchie des codes de retour d’avertissement, indiquant quel code d’avertissement doit être retourné lorsqu’on a le choix entre plusieurs codes de retour d’avertissement.

    Les codes d’erreur commencent par E_ ou DB_E_ et indiquent que la méthode a échoué complètement et n’a pas pu effectuer un travail utile. Par exemple, GetNextRows retourne E_INVALIDARG lorsqu’un pointeur null dans lequel le fournisseur OLE DB retourne un pointeur vers un tableau de handles de ligne (prghRows). Une exception à cela est que certaines des méthodes qui retournent DB_E_ERRORSOCCURRED allouer de la mémoire pour retourner des informations supplémentaires sur ces erreurs. Les consommateurs doivent libérer cette mémoire. Pour plus d’informations sur les méthodes qui allouent de la mémoire dans ce cas, consultez les méthodes qui retournent DB_E_ERRORSOCCURRED.

    Bien que les codes d’erreur puissent indiquer des erreurs d’exécution, telles qu’un manque de mémoire, ils indiquent généralement des erreurs de programmation. Si plusieurs erreurs se produisent, le code retourné est spécifique au fournisseur. Si des erreurs et des avertissements se produisent, la méthode échoue et retourne un code d’erreur.

    Toutes les méthodes peuvent retourner S_OK, E_FAIL et E_OUTOFMEMORY. Le code E_OUTOFMEMORY s’applique uniquement aux méthodes qui allouent la mémoire retournée au consommateur. Dans certains cas, le code E_OUTOFMEMORY peut être éliminé en appelant la méthode demandant moins de valeurs retournées, telles que moins de lignes de GetNextRows.