ISSAsynchStatus::WaitForAsynchCompletion(OLE DB)
적용 대상: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System(PDW)
비동기적으로 실행 중인 작업이 완료되거나 제한 시간이 초과될 때까지 대기합니다.
구문
HRESULT WaitForAsynchCompletion(
DWORD dwMillisecTimeOut);
인수
dwMillisecTimeOut[in]
제한 시간(밀리초)입니다.
반환 코드 값
S_OK
메서드가 성공했습니다.
E_UNEXPECTED
ITransaction::Commit 또는 ITransaction::Abort가 호출되었거나 초기화 단계에서 행 집합이 취소되었기 때문에 행 집합은 사용되지 않는 상태입니다.
DB_E_CANCELED
행 집합 채우기 또는 데이터 원본 개체 초기화 중 비동기 처리가 취소되었습니다.
DB_S_ASYNCHRONOUS
지정한 제한 시간에 도달했지만 작업이 완료되지 않았습니다.
참고 항목
위에 나열된 반환 코드 값 외에도 ISSAsynchStatus::WaitForAsynchCompletion 메서드는 핵심 OLEDB ICommand::Execute 및 IDBInitialize::Initialize 메서드에서 반환된 반환 코드 값도 지원합니다.
설명
ISSAsynchStatus::WaitForAsynchCompletion 메서드는 제한 시간 값(밀리초)이 경과하거나 보류 중인 작업이 완료될 때까지 값을 반환하지 않습니다. Command 개체에는 시간이 초과되기 전에 쿼리가 실행되는 시간(초)을 제어하는 CommandTimeout 속성이 있습니다. ISSAsynchStatus::WaitForAsynchCompletion 메서드와 함께 사용하면 CommandTimeout 속성이 무시됩니다.
시간 제한 속성은 비동기 작업에 대해 무시됩니다. ISSAsynchStatus::WaitForAsynchCompletion의 제한 시간 매개 변수는 컨트롤이 호출자에게 반환되기 전에 경과되는 최대 시간을 지정합니다. 이 제한 시간이 만료되면 DB_S_ASYNCHRONOUS 반환됩니다. 제한 시간을 지정해도 비동기 작업이 취소되지 않습니다. 애플리케이션이 제한 시간 내에 완료되지 않은 비동기 작업을 취소해야 하는 경우 시간 초과를 기다린 다음 DB_S_ASYNCHRONOUS 반환되는 경우 작업을 명시적으로 취소해야 합니다.
참고 항목
OLE DB Service Component를 사용하는 경우 DB_S_ASYNCHRONOUS 대신 S_OK가 반환될 수 있으므로 S_OK 또는 DB_S_ASYNCHRONOUS가 반환되는 경우 애플리케이션은 ISSAsynchStatus::GetStatus 를 호출하여 완료 여부를 확인해야 합니다.
dwMillisecTimeOut 값이 INFINITE로 설정되면 작업이 완료될 때까지 ISSAsynchStatus::WaitForAsynchCompletion 메서드가 차단됩니다. dwMillisecTimeOut 값이 0으로 설정된 경우 메서드는 보류 중인 작업의 상태와 함께 즉시 반환됩니다. 작업이 완료되기 전에 제한 시간이 만료되면 DB_S_ASYNCHRONOUS 반환됩니다.
제한 시간이 만료되기 전에 작업이 완료되면 반환된 HRESULT는 작업에서 반환된 HRESULT(작업이 동기적으로 수행되었으면 반환된 HRESULT)가 됩니다.
또한 SSPROP_ISSAsynchStatus 속성이 DBPROPSET_SQLSERVERROWSET 속성 집합에 추가되었습니다. ISSAsynchStatus 인터페이스를 지원하는 공급자는 VARIANT_TRUE 값을 사용하여 이 속성을 구현해야 합니다.
참고 항목
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기