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


ISSAbort::Abort (OLE DB)

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

Синтаксис

        HRESULT Abort(void);

Замечания

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

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

ПримечаниеПримечание

Начиная с версии SQL Server 2005, если параметр сервера XACT_ABORT имеет значение ON, вызов метода ISSAbort::Abort при подключении к SQL Server прекратит все транзакции, явные и неявные, и совершит их откат. Более ранние версии SQL Server не прекратят текущих транзакций.

Arguments

Нет.

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

  • 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
    Ошибка, связанная с нехваткой памяти.

См. также

Другие ресурсы