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