ISSAbort::Abort(OLE DB)

현재 행 집합 및 현재 명령과 연결된 일괄 처리되는 명령을 취소합니다.

구문

HRESULT Abort(void);

주의

중단할 명령이 저장 프로시저에 있으면 저장 프로시저 및 해당 프로시저를 호출한 프로시저의 실행 및 저장 프로시저 호출이 포함된 명령 일괄 처리가 종료됩니다. 서버에서 결과 집합을 클라이언트로 전송 중이면 전송이 중지됩니다. 클라이언트가 결과 집합을 사용하지 않으려는 경우 행 집합을 해제하기 전에 ISSAbort::Abort를 호출하면 행 집합을 신속하게 해제할 수 있습니다. 그러나 열려 있는 트랜잭션이 있고 XACT_ABORT가 ON인 경우 ISSAbort::Abort를 호출하면 트랜잭션이 롤백됩니다.

ISSAbort::Abort가 S_OK를 반환한 후에는 연결된 IMultipleResults 인터페이스가 사용할 수 없는 상태로 전환되어 해제될 때까지 모든 메서드 호출(IUnknown 인터페이스로 정의된 메서드는 제외)에 대해 DB_E_CANCELED를 반환합니다. Abort를 호출하기 전에 IMultipleResults에서 IRowset을 가져온 경우에도 ISSAbort::Abort 호출 후 인터페이스가 사용할 수 없는 상태로 전환되어 해제될 때까지 모든 메서드 호출(IUnknown 인터페이스 및 IRowset::ReleaseRows로 정의된 메서드는 제외)에 대해 DB_E_CANCELED를 반환합니다.

[!참고]

SQL Server 2005부터는 서버 XACT_ABORT 상태가 ON일 경우 SQL Server에 연결되어 있을 때 ISSAbort::Abort를 실행하면 현재의 암시적 또는 명시적 트랜잭션이 종료되고 롤백됩니다. 이전 버전의 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)