Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Espera hasta que se complete la operación de ejecución asincrónica o hasta que se produzca un tiempo de espera.
Sintaxis
HRESULT WaitForAsynchCompletion(
DWORD dwMillisecTimeOut);
Argumentos
dwMillisecTimeOut[in]
Tiempo de espera en milisegundos.
Valores de código de retorno
S_OK
El método se ha llevado a cabo de forma correcta.
E_UNEXPECTED
Un conjunto de filas está en un estado no utilizado porque se ha llamado a ITransaction::Commit o ITransaction::Abort o se canceló el conjunto de filas durante su fase de inicialización.
DB_E_CANCELED
El procesamiento asincrónico se canceló durante la inicialización de objetos de origen de datos o rellenado de conjuntos de filas.
DB_S_ASYNCHRONOUS
La operación aún no se ha completado aunque se haya alcanzado el tiempo de espera especificado.
Nota:
Además de los valores de código devueltos enumerados anteriormente, el método ISSAsynchStatus::WaitForAsynchCompletion también admite los valores de código devueltos por los principales métodos OLEDB ICommand::Execute y IDBInitialize::Initialize .
Observaciones
El método ISSAsynchStatus::WaitForAsynchCompletion no devolverá hasta que se haya superado el valor de tiempo de espera (en milisegundos) o se haya realizado la operación pendiente. El objeto Command tiene una propiedad CommandTimeout que controla el número de segundos que se ejecutará una consulta antes de que se agote el tiempo de espera. La propiedad CommandTimeout se omitirá si se usa junto con el método ISSAsynchStatus::WaitForAsynchCompletion .
La propiedad time-out se omite para las operaciones asincrónicas. El parámetro time-out de ISSAsynchStatus::WaitForAsynchCompletion especifica la cantidad máxima de tiempo que transcurrirá antes de que se devuelva el control al autor de la llamada. Si expira este tiempo de espera, se devolverá DB_S_ASYNCHRONOUS. Los tiempos de espera nunca cancelan las operaciones asincrónicas. Si la aplicación necesita cancelar una operación asincrónica que no se completa dentro de un período de tiempo de espera, debe esperar el tiempo de espera y, a continuación, cancelar explícitamente la operación si se devuelve DB_S_ASYNCHRONOUS.
Nota:
Cuando se usan los componentes del servicio OLE DB, se puede devolver S_OK cuando se espera DB_S_ASYNCHRONOUS, por lo que las aplicaciones deben llamar a ISSAsynchStatus::GetStatus para comprobar la finalización cuando se devuelve S_OK o DB_S_ASYNCHRONOUS.
Si el valor dwMillisecTimeOut se establece en INFINITE, el método ISSAsynchStatus::WaitForAsynchCompletion se bloquea hasta que se realice la operación. Si el valor dwMillisecTimeOut se establece en 0, el método devolverá inmediatamente con el estado de la operación pendiente. Si el tiempo de espera expira antes de que se complete la operación DB_S_ASYNCHRONOUS se devolverá.
Si la operación se completa antes de que expire el tiempo de espera, HRESULT devuelto será el HRESULT devuelto por la operación (hrESULT que se habría devuelto si la operación se hubiera realizado de forma sincrónica).
Además, la propiedad SSPROP_ISSAsynchStatus se ha agregado al conjunto de propiedades DBPROPSET_SQLSERVERROWSET. Los proveedores que admiten la interfaz ISSAsynchStatus deben implementar esta propiedad con un valor de VARIANT_TRUE.
Véase también
Realización de operaciones asincrónicas
ISSAsynchStatus (OLE DB)