Teilen über


ISSAbort::Abort (Native Client OLE DB-Anbieter)

Gilt für: SQL Server Azure SQL-Datenbank Azure SQL verwaltete Instanz Azure Synapse Analytics Analytics Platform System (PDW)

Wichtig

Der SQL Server Native Client (häufig abgekürzt mit SNAC) wurde aus SQL Server 2022 (16.x) und SQL Server Management Studio 19 (SSMS) entfernt. Sowohl der OLE DB-Anbieter für den SQL Server Native Client (SQLNCLI oder SQLNCLI11) als auch der Microsoft OLE DB-Legacyanbieter für SQL Server (SQLOLEDB) werden für Neuentwicklungen nicht empfohlen. Verwenden Sie in Zukunft den neuen Microsoft OLE DB-Treiber für SQL Server (MSOLEDBSQL).

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

Die ISSAbort-Schnittstelle , die im OLE DB-Anbieter des SQL Server Native Client verfügbar gemacht wird, stellt die ISSAbort::Abort-Methode bereit, mit der das aktuelle Rowset abgebrochen wird, sowie alle Befehle, die mit dem Befehl batchiert wurden, der das Rowset ursprünglich generiert hat und die noch nicht abgeschlossene Ausführung abgeschlossen haben.

ISSAbort ist eine anbieterspezifische SQL Server Native Client-Schnittstelle, die mithilfe von QueryInterface für das von ICommand::Execute oder IOpenRowset::OpenRowset zurückgegebene IMultipleResults-Objekt verfügbar ist.

Syntax

  
HRESULT Abort(void);  

Hinweise

Wenn sich der Befehl in einer gespeicherten Prozedur befindet, wird die Ausführung der gespeicherten Prozedur (und alle Prozeduren, die diese Prozedur aufgerufen haben) sowie der Befehlsbatch beendet, der den Aufruf der gespeicherten Prozedur enthält. 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 IMultipleResultsempfangen 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::ReleaseRowsdefiniert sind), bis es nach einem erfolgreichen Aufruf von ISSAbort::Abortwieder freigegeben wird.

Hinweis

Ab SQL Server 2005 (9.x) wird XACT_ABORT beim Ausführen von ISSAbort::Abort jede aktuelle implizite oder explizite Transaktion beendet und zurückgesetzt, wenn eine Verbindung mit SQL Server hergestellt wird. 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.

Weitere Informationen

ISSAbort (OLE DB)