Freigeben über


ISSAbort::Abort (OLE DB)

Bricht das aktuelle Rowset sowie eventuell mit dem aktuellen Befehl verknüpfte Batchbefehle ab.

Syntax

HRESULT Abort(void);

Hinweise

Wenn der abgebrochene Befehl eine gespeicherte Prozedur ist, wird die Ausführung der gespeicherten Prozedur (und aller Prozeduren, die diese Prozedur aufgerufen haben) sowie des Befehlsbatch, der den gespeicherten Prozeduraufruf enthielt, ebenfalls beendet. Falls der Server gerade ein Resultset an den Client überträgt, wird dieses gestoppt. Wenn der Client ein Resultset nicht verarbeitet, wird durch Aufrufen von ISSAbort::Abort vor dem Freigeben des Rowsets die Rowsetfreigabe beschleunigt, aber wenn eine offene Transaktion vorhanden ist und XACT_ABORT auf ON gestellt ist, wird beim Aufrufen von ISSAbort::Abort ein Rollback für die Transaktion ausgeführt.

Sobald ISSAbort::Abort S_OK zurückgibt, kann die zugehörige IMultipleResults-Schnittstelle nicht mehr verwendet werden und gibt bei allen Methodenaufrufen DB_E_CANCELED zurück (außer bei Methoden, die durch die IUnknown-Schnittstelle definiert sind), bis sie wieder freigegeben wird. Falls vor dem Abort-Aufruf ein IRowset von IMultipleResults empfangen wurde, ist dieses ebenfalls nicht mehr verwendbar und gibt bei allen Methodenaufrufen DB_E_CANCELED zurück (außer bei Methoden, die durch die IUnknown-Schnittstelle und IRowset::ReleaseRows definiert sind), bis es nach einem erfolgreichen Aufruf von ISSAbort::Abort wieder freigegeben wird.

HinweisHinweis

Ab SQL Server 2005 gilt: Wenn der Serverstatus XACT_ABORT ON ist, werden bei Ausführung von ISSAbort::Abort alle aktuellen impliziten oder expliziten Transaktionen beendet und ein Rollback ausgeführt, wenn eine Verbindung zu SQL Server besteht. Frühere Versionen von SQL Server brechen die aktuelle Transaktion nicht ab.

Argumente

Keine

Rückgabecodewerte

  • S_OK
    Die ISSAbort::Abort-Methode gibt S_OK zurück, wenn der Batch abgebrochen wurde, andernfalls DB_E_CANTCANCEL. Wenn der Batch bereits abgebrochen wurde, wird DB_E_CANCELED zurückgegeben.

  • DB_E_CANCELED
    Der Batch wurde bereits abgebrochen.

  • DB_E_CANTCANCEL
    Der Batch wurde nicht abgebrochen.

  • E_FAIL
    Ein anbieterspezifischer Fehler ist aufgetreten. Ausführliche Informationen erhalten Sie über die ISQLServerErrorInfo-Schnittstelle.

  • E_UNEXPECTED
    Die Methode wurde unerwartet aufgerufen. Zum Beispiel ist das Objekt in einem Zombiezustand, da ISSAbort::Abort bereits aufgerufen wurde.

  • E_OUTOFMEMORY
    Fehler aufgrund von nicht genügend Arbeitsspeicher.

Siehe auch

Andere Ressourcen