Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Sistema de Plataforma de Análise (PDW)
Base de dados SQL no Microsoft Fabric
Espera até que a operação em execução assíncrona esteja concluída ou até que ocorra um time-out.
Sintaxe
HRESULT WaitForAsynchCompletion(
DWORD dwMillisecTimeOut);
Arguments
dwMillisecTimeOut[in]
Pausa em milissegundos.
Valores do código de retorno
S_OK
O método teve sucesso.
E_UNEXPECTED
Um conjunto de linhas está num estado não utilizado porque ITransaction::Commit ou ITransaction::Abort foi chamado ou o conjunto de linhas foi cancelado durante a sua fase de inicialização.
DB_E_CANCELED
O processamento assíncrono foi cancelado durante a inicialização da população de linhas ou do objeto fonte de dados.
DB_S_ASYNCHRONOUS
A operação ainda não foi concluída, apesar de ter sido atingido o tempo de espera especificado.
Observação
Para além dos valores de código de retorno listados acima, o método ISSAsynchStatus::WaitForAsynchCompletion também suporta os valores de código de retorno devolvidos pelos métodos principais OLEDB ICommand::Execute e IDBInitialize::Initialize .
Observações
O método ISSAsynchStatus::WaitForAsynchCompletion não retornará até que o valor de time-out (em milissegundos) tenha passado ou a operação pendente esteja concluída. O objeto Command tem uma propriedade CommandTimeout que controla o número de segundos que uma consulta irá correr antes de expirar. A propriedade CommandTimeout será ignorada se usada em conjunto com o método ISSAsynchStatus::WaitForAsynchCompletion .
A propriedade de time-out é ignorada para operações assíncronas. O parâmetro de time-out ISSAsynchStatus::WaitForAsynchCompletion especifica o tempo máximo que decorrerá antes de o controlo ser devolvido ao chamador. Se este tempo expirar, DB_S_ASYNCHRONOUS será devolvido. Os tempos de espera nunca cancelam operações assíncronas. Se a aplicação precisar de cancelar uma operação assíncrona que não seja concluída dentro de um período de time-out, deve esperar pelo time-out e depois cancelar explicitamente a operação se DB_S_ASYNCHRONOUS for devolvido.
Observação
Quando os Componentes de Serviço OLE DB são utilizados, S_OK podem ser devolvidos quando DB_S_ASYNCHRONOUS for esperado, pelo que as aplicações devem chamar ISSAsynchStatus::GetStatus para verificar a conclusão quando S_OK ou DB_S_ASYNCHRONOUS for devolvido.
Se o valor dwMillisecTimeOut for definido como INFINITO, o método ISSAsynchStatus::WaitForAsynchCompletion bloqueia-se até a operação estar concluída. Se o valor dwMillisecTimeOut for definido para 0, o método retornará imediatamente com o estado da operação pendente. Se o time-out expirar antes da operação estar concluída, DB_S_ASYNCHRONOUS será devolvido.
Se a operação for concluída antes do time-out expirar, o HRESULT devolvido será o HRESULT devolvido pela operação (o HRESULT que teria sido devolvido se a operação tivesse sido realizada de forma síncrona).
Além disso, a propriedade SSPROP_ISSAsynchStatus foi adicionada ao conjunto de propriedades DBPROPSET_SQLSERVERROWSET. Os fornecedores que suportam a interface ISSAsynchStatus devem implementar esta propriedade com um valor de VARIANT_TRUE.