SQL Server Native Client의 ISSAsynchStatus::WaitForAsynchCompletion(OLE DB)
적용 대상: SQL Server Azure SQL 데이터베이스 Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System(PDW)
Important
SQL Server Native Client(약칭 SNAC)는 SQL Server 2022(16.x) 및 SSMS(SQL Server Management Studio) 19에서 제거되었습니다. SQL Server Native Client OLE DB 공급자(SQLNCLI 또는 SQLNCLI11)와 레거시 Microsoft OLE DB Provider for SQL Server(SQLOLEDB)는 모두 새로운 개발에 권장되지 않습니다. 앞으로 SQL Server용 새 Microsoft OLE DB 드라이버(MSOLEDBSQL)로 전환합니다.
비동기적으로 실행 중인 작업이 완료되거나 제한 시간이 초과될 때까지 대기합니다.
구문
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 값을 사용하여 이 속성을 구현해야 합니다.