Udostępnij za pośrednictwem


ISSAsynchStatus::WaitForAsynchCompletion (OLE DB)

Czeka, aż do zakończenia operacji wykonywania asynchronicznie, lub do momentu wystąpienia limit czas.

HRESULT WaitForAsynchCompletion( 
        DWORD dwMillisecTimeOut);

Argumenty

  • dwMillisecTimeOut[w]
    Limit czas (w milisekundach).

Wartości kodów powrotnych

  • S_OK
    metoda powiodło się.

  • E_UNEXPECTED
    Jest w stanie nieużywanych zestawu wierszy, ponieważ Metody ITransaction::zatwierdzanie or ITransaction::Abort została wywołana lub zestaw wierszy zostało anulowane podczas jego inicjowania.

  • DB_E_CANCELED
    Przetwarzanie asynchroniczne zostało anulowane podczas zestawu zestaw wierszy zapełnianie i dane źródłowe obiektu inicjowania.

  • DB_S_ASYNCHRONOUS
    Operacja nie została jeszcze ukończona mimo, że osiągnięto limit określony.

Uwaga

Oprócz wymienionych powyżej, wartości zwracane kody ISSAsynchStatus::WaitForAsynchCompletion metoda obsługuje także wartości zwracane kody zwracane przez podstawowy OLEDB ICommand::wykonać and IDBInitialize::Initialize metody.

Remarks

The ISSAsynchStatus::WaitForAsynchCompletion metoda will not return until the czas-out value (in milliseconds) has passed or the pending operation is done.The Command object has a CommandTimeout właściwość that controls the number of seconds a query will run before timing out.The CommandTimeout właściwość will be ignored if used in conjunction with ISSAsynchStatus::WaitForAsynchCompletion metoda.

Właściwość limit czas jest ignorowany w przypadku operacji asynchronicznych.Parametr limitu czas ISSAsynchStatus::WaitForAsynchCompletion określa maksymalną ilość czas, jaki upłynie przed formantu jest zwracana do obiektu wywołującego.Jeżeli ten limit czas upłynie, zostaną zwrócone DB_S_ASYNCHRONOUS.Limity czas nie anulowanie operacji asynchronicznych.Jeśli aplikacja musi anulować operację asynchroniczną, które nie zostało ukończone wewnątrz okresu limitu czas, należy poczekać, aż limit czas i następnie jawnie anulować operację, jeśli zostanie zwrócony DB_S_ASYNCHRONOUS.

Uwaga

W przypadku składników usługa DB OLE S_OK mogą być zwracane, gdy DB_S_ASYNCHRONOUS oczekuje się, więc aplikacji powinna wywołać ISSAsynchStatus::GetStatus , aby sprawdzić, czy zakończenia zwracane S_OK lub DB_S_ASYNCHRONOUS.

Jeśli dwMillisecTimeOut wartość zestaw do INFINITE ISSAsynchStatus::WaitForAsynchCompletion metoda bloków, dopóki nie zakończy działania.Jeśli dwMillisecTimeOut ma wartość 0, a następnie natychmiast zwraca metoda o stanie Oczekujące operacje.Jeżeli limit czas wygasa przed zakończeniem operacji DB_S_ASYNCHRONOUS zostaną zwrócone.

Jeśli zakończeniu operacji przed upływem limitu czas, zwrócona wartość HRESULT jest HRESULT, zwrócony przez operację (HRESULT, która będzie zwracana miał operacja została wykonana synchronicznie).

Ponadto właściwość SSPROP_ISSAsynchStatus został dodany do zestaw właściwości DBPROPSET_SQLSERVERROWSET.Dostawcy, które obsługują ISSAsynchStatus interfejs musi implementować tej właściwość wartość VARIANT_TRUE.