Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Base de Dados SQL do Azure
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.