Поделиться через


ISSAbort::Abort (поставщик OLE DB собственного клиента)

Применимо:SQL Server База данных SQL Azure Управляемый экземпляр SQL Azureazure Synapse Analytics AnalyticsPlatform System (PDW)

Внимание

Собственный клиент SQL Server (часто сокращенный SNAC) был удален из SQL Server 2022 (16.x) и SQL Server Management Studio 19 (SSMS). Поставщик OLE DB собственного клиента SQL Server (SQLNCLI или SQLNCLI11) и устаревший поставщик Microsoft OLE DB для SQL Server (SQLOLEDB) не рекомендуется для новой разработки. Перейдите на новый драйвер Microsoft OLE DB (MSOLEDBSQL) для SQL Server .

Отменяет текущий набор строк и любые пакетные команды, ассоциированные с текущей командой.

Интерфейс ISSAbort, который предоставляется в поставщике OLE DB собственного клиента SQL Server, предоставляет метод ISSAbort::Abort, используемый для отмены текущего набора строк, а также все команды, пакетные с помощью команды, которая изначально создал набор строк и которые еще не завершили выполнение.

ISSAbort — это интерфейс поставщика собственного клиента SQL Server, доступный с помощью QueryInterface для объекта IMultipleResults , возвращаемого ICommand::Execute или IOpenRowset::OpenRowset.

Синтаксис

  
HRESULT Abort(void);  

Замечания

Если команда прервана в хранимой процедуре, выполнение хранимой процедуры (и все процедуры, вызываемые этой процедурой), будут прерваны, а также пакет команд, содержащий вызов хранимой процедуры. Если сервер в это время передавал клиенту результирующий набор, эта передача будет прекращена. Если клиент не хочет получать результирующий набор, перед освобождением набора строк можно вызвать метод ISSAbort::Abort ; это ускорит высвобождение набора строк, но если в это время существует открытая транзакция и ее свойство XACT_ABORT имеет значение ON, при вызове ISSAbort::Abort произойдет откат транзакции.

После того как метод ISSAbort::Abort вернет результат S_OK, связанный с ним интерфейс IMultipleResults становится непригодным к использованию и вплоть до освобождения в ответ на вызовы любых методов (кроме методов, определенных в интерфейсе IUnknown) возвращает результат DB_E_CANCELED. Если из интерфейса IMultipleResults до вызова метода Abort был получен интерфейс IRowset, он также входит в непригодное к использованию состояние и в ответ на любые вызовы методов возвращает результат DB_E_CANCELED (кроме методов, определенных для интерфейсов IUnknown и IRowset::ReleaseRows), пока не будет освобожден успешным вызовом метода ISSAbort::Abort.

Примечание.

Начиная с SQL Server 2005 (9.x), если сервер XACT_ABORT состояние on, выполнение ISSAbort::Abort завершится и откатит текущую неявную или явную транзакцию при подключении к SQL Server. Более ранние версии SQL Server не прерывают текущую транзакцию.

Аргументы

Нет.

Значения кода возврата

S_OK
Метод ISSAbort::Abort возвращает значение S_OK, если было прервано выполнение программного пакета, и DB_E_CANTCANCEL в противном случае. Если выполнение программного пакета уже было прервано ранее, возвращается DB_E_CANCELED.

DB_E_CANCELED
Выполнение пакета уже было прервано.

DB_E_CANTCANCEL
Выполнение пакета не было прервано.

E_FAIL
Произошла ошибка, связанная с поставщиком. Подробные сведения можно получить при помощи интерфейса ISQLServerErrorInfo.

E_UNEXPECTED
Непредвиденный вызов метода. Например, объект находится в состоянии зомби, потому что метод ISSAbort::Abort уже был вызван.

E_OUTOFMEMORY
Ошибка, связанная с нехваткой памяти.