Partager via


ISSAsynchStatus::Abort (OLE DB)

Annule une opération s'exécutant de manière asynchrone.

Syntaxe

HRESULT Abort(
        HCHAPTER hChapter,
        DBASYNCHOP eOperation);

Arguments

  • hChapter[in]
    Handle du chapitre pour lequel vous souhaitez abandonner l'opération. Si l'objet appelé n'est pas un objet d'ensemble de lignes ou que l'opération ne s'applique pas à un chapitre, l'appelant doit attribuer la valeur DB_NULL_HCHAPTER à hChapter.

  • eOperation[in]
    L'opération à abandonner. Elle doit avoir la valeur suivante :

    DBASYNCHOP_OPEN : la demande d'annulation s'applique à l'ouverture ou au remplissage asynchrone d'un ensemble de lignes ou à l'initialisation asynchrone d'un objet source de données.

Valeurs de code de retour

  • S_OK
    La demande d'annulation de l'opération asynchrone a été traitée. Cela ne garantit pas que l'opération ait été annulée. Pour déterminer si l'opération a bien été annulée, le consommateur doit appeler ISSAsynchStatus::GetStatus et vérifier la présence de DB_E_CANCELED ; toutefois, il est possible qu'il ne soit pas retourné dans l'appel suivant.

  • DB_E_CANTCANCEL
    L'opération asynchrone ne peut pas être annulée.

  • DB_E_CANCELED
    La demande d'abandon de l'opération asynchrone a été annulée au cours de notifications. L'opération est encore exécutée de manière asynchrone.

  • E_FAIL
    Une erreur spécifique au fournisseur s'est produite.

  • E_INVALIDARG
    Le paramètre hChapter n'est pas DB_NULL_HCHAPTER ou eOperation n'est pas DBASYNCH_OPEN.

  • E_UNEXPECTED
    ISSAsynchStatus::Abort a été appelé sur un objet source de données sur lequel IDBInitialize::Initialize n'a pas été appelé ou ne s'est pas terminé.

    ISSAsynchStatus::Abort a été appelé sur un objet source de données sur lequel IDBInitialize::Initialize a été appelé mais a été par la suite annulé avant l'initialisation ou a dépassé le délai d'attente. L'objet source de données n'est pas encore initialisé.

    ISSAsynchStatus::Abort a été appelé sur un ensemble de lignes sur lequel ITransaction::Commit ou ITransaction::Abort a été appelé précédemment, et l'ensemble de lignes n'a pas survécu à la validation ou à l'abandon et se trouve dans un état passif.

    ISSAsynchStatus::Abort a été appelé sur un ensemble de lignes qui a été annulé de manière asynchrone dans sa phase d'initialisation. L'ensemble de lignes se trouve dans un état zombie.

Notes

L'abandon de l'initialisation d'un ensemble de lignes ou d'un objet source de données peut laisser l'ensemble de lignes ou l'objet source de données dans un état zombie, de telle sorte que toutes les méthodes autres que IUnknown retournent E_UNEXPECTED. Lorsque cela se produit, la seule action possible pour le consommateur est de libérer l'ensemble de lignes ou l'objet source de données.

Le fait d'appeler ISSAsynchStatus::Abort et de passer une valeur pour eOperation autre que DBASYNCHOP_OPEN retourne S_OK. Cela ne signifie pas pour autant que l'opération est terminée ou annulée.

Historique des modifications

Mise à jour du contenu

Clarification de la description d'E_UNEXPECTED.