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


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

Применимо: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure azure Synapse Analytics Analytics Platform 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
Ошибка, связанная с нехваткой памяти.

См. также

ISSAbort (OLE DB)