Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Banco de Dados SQL do Azure
Instância Gerenciada de SQL do Azure
Azure Synapse Analytics
Sistema de Plataforma de Análise (PDW)
Banco de dados SQL no Microsoft Fabric
Aguarda até que a operação com execução assíncrona seja concluída ou que um tempo limite seja atingido.
Sintaxe
HRESULT WaitForAsynchCompletion(
DWORD dwMillisecTimeOut);
Argumentos
dwMillisecTimeOut[in]
Tempo limite em milissegundos.
Valores do código de retorno
S_OK
O método foi bem-sucedido.
E_UNEXPECTED
Um conjunto de linhas está em um estado não utilizado porque ITransaction::Commit ou ITransaction::Abort foi chamado ou o conjunto de linhas foi cancelado durante sua fase de inicialização.
DB_E_CANCELED
O processamento assíncrono foi cancelado durante a população do conjunto de linhas ou a inicialização de objeto de fonte de dados.
DB_S_ASYNCHRONOUS
A operação ainda não foi concluída, embora o tempo limite especificado tenha sido atingido.
Observação
Além dos valores de código de retorno listados anteriormente, o método ISSAsynchStatus::WaitForAsynchCompletion também dá suporte aos valores de código de retorno retornados pelos principais métodos ICommand::Execute e IDBInitialize::Initialize do OLE DB.
Comentários
O método ISSAsynchStatus::WaitForAsynchCompletion não será retornado enquanto o valor de tempo limite (em milissegundos) não se esgotar ou a operação pendente não for concluída. O objeto Command tem uma propriedade CommandTimeout que controla o número de segundos que uma consulta será executada antes de exceder o tempo limite. A propriedade CommandTimeout será ignorada se for usada em conjunto com o método ISSAsynchStatus::WaitForAsynchCompletion.
A propriedade de tempo limite é ignorada para operações assíncronas. O parâmetro de tempo limite de ISSAsynchStatus::WaitForAsynchCompletion especifica o tempo máximo decorrido antes de o controle ser retornado ao chamador. Se esse tempo limite expirar, DB_S_ASYNCHRONOUS será retornado. Os tempos limite nunca cancelam operações assíncronas. Se o aplicativo precisar cancelar uma operação assíncrona que não tenha sido concluída dentro de um tempo limite, ele deverá aguardar o tempo limite e, em seguida, cancelar explicitamente a operação, caso DB_S_ASYNCHRONOUS seja retornado.
Observação
Quando os Componentes de Serviço do OLE DB são usados, S_OK pode ser retornado quando DB_S_ASYNCHRONOUS é esperado; portanto, os aplicativos devem chamar ISSAsynchStatus::GetStatus para verificar a conclusão quando S_OK ou DB_S_ASYNCHRONOUS é retornado.
Se o valor de dwMillisecTimeOut for definido como INFINITE, o método ISSAsynchStatus::WaitForAsynchCompletion será bloqueado até a conclusão da operação. Se o valor de dwMillisecTimeOut for definido como 0, o método será retornado imediatamente com o status da operação pendente. Se o tempo limite expirar antes da conclusão da operação, DB_S_ASYNCHRONOUS será retornado.
Se a operação for concluída antes da expiração do tempo limite, o HRESULT retornado será o HRESULT retornado pela operação (o HRESULT retornado executou a operação de forma síncrona).
Além disso, a propriedade SSPROP_ISSAsynchStatus foi adicionada ao conjunto de propriedades DBPROPSET_SQLSERVERROWSET. Os provedores que dão suporte à interface ISSAsynchStatus precisam implementar essa propriedade com um valor de VARIANT_TRUE.