ISSAsynchStatus::GetStatus (OLE DB)
Zwraca stan asynchronicznego wykonywania operacji.
Składnia
HRESULT GetStatus(
HCHAPTER hChapter,
DBASYNCHOP eOperation,
DBCOUNTITEM *pulProgress,
DBCOUNTITEM *pulProgressMax,
DBASYNCHPHASE *peAsynchPhase,
LPOLESTR *ppwszStatusText);
Argumenty
hChapter[w]
Uchwyt rozdziału.Jeśli obiekt jest sondowany nie jest obiekt zestawu zestaw wierszy lub operacji nie ma zastosowania do rozdziału, to należy ustawić na DB_NULL_HCHAPTER, który jest ignorowany przez dostawca.eOperation[w]
Operacja, dla którego wnioskuje się stan asynchronicznego.Powinno to być następujące wartości:DBASYNCHOP_OPEN — informacje dotyczące otwierania asynchronicznego lub zapełnianie zestawu zestaw wierszy lub inicjowania asynchronicznego danych żąda konsument obiekt źródłowy.Jeśli dostawca jest zgodny z 2.5 dostawcy OLE DB, który obsługuje bezpośrednie powiązanie adresu URL, konsument żąda informacji o asynchronicznych inicjowania lub zapełnianie źródło danych, zestaw wierszy, wiersza lub obiektu strumienia.
pulProgress[out]
Wskaźnik pamięci postęp bieżącej operacji asynchronicznych względem oczekiwanego maksymalnego zwrotu wskazanych w pulProgressMax parametru.Więcej informacji o znaczeniu pulProgress, zobacz opis peAsynchPhase.Jeśli pulProgress jest pusty wskaźnik, postęp nie jest zwracany.
pulProgressMax[out]
Wskaźnik do pamięci, w której zostanie zwrócona wartość oczekiwana maksymalna pulProgress parametru.Wartość ta może zmienić całej wywołania tej metoda.Więcej informacji o znaczeniu pulProgressMax, zobacz opis peAsynchPhase.Jeśli pulProgressMax jest pusty wskaźnik, zwracana jest wartość maksymalna nie oczekiwano.
peAsynchPhase[out]
Wskaźnik do pamięci, w którym zwraca dodatkowe informacje dotyczące postępu operacji asynchronicznej.Prawidłowe wartości to:DBASYNCHPHASE_INITIALIZATION — obiekt jest w fazę inicjowania.Argumenty pulProgress i pulProgressMax wskazują szacowany stopień zaawansowania.Obiekt jest nie jeszcze całkowicie materialized.Próba wywołania innych interfejsów może zakończyć się niepowodzeniem i pełny zestaw interfejsów mogą nie być dostępne dla obiektu.Jeśli operacja asynchroniczna została wynik telefonicznej ICommand::Execute dla polecenia, które aktualizuje, usuwa lub wstawia wiersze i jeśli cParamSets jest większa niż 1, pulProgress i pulProgressMax może wskazywać postępu dla pojedynczego zestaw parametrów lub pełną gamą zestawów parametrów.
DBASYNCHPHASE_POPULATION — obiekt jest w fazie zapełnianie.Chociaż zestawu zestaw wierszy jest w pełni zainicjowany i pełnego zakres interfejsów jest dostępna na obiekcie, mogą być dodatkowe wiersze, które nie zostały jeszcze wypełnione do zestawu zestaw wierszy.Podczas pulProgress i pulProgressMax może być oparta na liczbę wierszy wypełnione są ogólnie oparte na czas i wysiłek, aby wypełnić zestaw wierszy.Wywołujący dlatego powinny używać tych informacji, jak oszacowanie jak długo proces może potrwać, nie liczba wierszy ewentualnego.Faza ta jest zwracana tylko w trakcie zapełnianie zestawu zestaw wierszy; nigdy nie jest zwracany w inicjowania danych obiekt źródłowy lub przez wykonanie polecenia, które aktualizuje, usuwa lub wstawia wiersze.
DBASYNCHPHASE_COMPLETE — wszystkie przetwarzania asynchronicznego obiektu została ukończona.ISSAsynchStatus::GetStatus zwraca wartość HRESULT wskazujący wynik operacji.Zazwyczaj będzie to wartość HRESULT byłyby zwróconych miał operacja została wywołana synchronicznie.Jeśli operacja asynchroniczna została wynik telefonicznej ICommand::Execute dla polecenia, które aktualizuje, usuwa lub wstawia wiersze, pulProgress i pulProgressMax jest równa całkowitej liczby wierszy dotyczy polecenia.Jeśli cParamSets jest większa niż 1, jest to całkowita liczba wierszy dotyczy wszystkich zestawów parametrów określonych w realizacji.Jeśli peAsynchPhase pusty wskaźnik, zostanie zwrócony kod stanu nie.
DBASYNCHPHASE_CANCELED — przetwarzania asynchronicznego obiektu została przerwana.ISSAsynchStatus::GetStatus zwraca DB_E_CANCELED.Jeśli operacja asynchroniczna została wynik telefonicznej ICommand::Execute dla polecenia, które aktualizuje, usuwa lub wstawia wiersze, pulProgress jest równa Liczba wierszy dla wszystkich zestawów parametrów, dotyczy polecenia przed do anulowania.
ppwszStatusText[in/out]
Wskaźnik do pamięci zawierającej dodatkowe informacje na temat operacji.Dostawca może używać tej wartości do rozróżniania różnych elementów operacji — uzyskiwany na przykład różne zasoby.Ciąg ten jest zlokalizowany zgodnie z właściwość DBPROP_INIT_LCID na dane obiekt źródłowy.Jeśli ppwszStatusText nie jest-null na wejściu, dostawca zwraca stan skojarzony z określonym elementem identyfikowane przez ppwszStatusText.Jeśli ppwszStatusText nie wskazuje element eOperation, dostawca zwraca S_OK z pulProgress i pulProgressMax zestaw na tę samą wartość.Jeśli dostawca nie rozróżnia elementów na podstawie tekstowy identyfikatora, ustawia ppwszStatusText do NULL i zwraca informacje o operacji jako całości; Jeśli inaczej, ppwszStatusText nie jest-null na wejściu, pozostawia dostawca ppwszStatusText bez zmian.
Jeśli ppwszStatusText ma wartość null na wejściu Ustawia dostawca ppwszStatusText wartość wskazującą więcej informacji na temat operacji, lub NULL, jeśli informacje nie są dostępne lub ISSAsynchStatus::GetStatus zwraca błąd.Gdy ppwszStatusText null na wejściu, dostawca przydziela ciąg stanu pamięci i zwraca adres pamięci.Konsument zwalnia to pamięć z IMalloc::Free gdy już dłużej potrzebna ciąg.
Jeśli ppwszStatusText ma wartość NULL na wejściu, zwrócony ciąg nie stanu i ogólnie dostawca zwraca informacje dotyczące dowolnego elementu operacji lub operacji.
Wartości kodów powrotnych
S_OK
Metoda zwróciła się pomyślnie.Jeśli peAsynchPhase jest równa DBASYNCHPHASE_INITIALIZATION, obiekt nie jest jeszcze pełni zainicjowany; Próba wywołania innych interfejsów może zakończyć się niepowodzeniem i pełny zestaw interfejsów mogą być niedostępne na obiekcie.
Jeśli peAsynchPhase jest równy DBASYNCHPHASE_POPULATION zestawu zestaw wierszy jest w pełni zainicjowany i pełnego zakres interfejsy są dostępne w obiekcie; Jednakże mogą być dodatkowe wiersze, które nie zostały jeszcze wypełnione do zestawu zestaw wierszy.
Jeśli peAsynchPhase jest równa DBASYNCHPHASE_COMPLETE, wszystkie przetwarzania asynchronicznego obiektu została ukończona.Obiekt jest w pełni zainicjowany i wypełnione.
DB_E_CANCELED
Przetwarzanie asynchroniczne zostało anulowane podczas zapełnianie zestawu zestaw wierszy.Zatrzymuje populacji, ale ważne dla zestaw wierszy wypełnionymi pozostaje zestawu zestaw wierszy.Przetwarzanie asynchroniczne zostało anulowane podczas danych obiekt źródłowy inicjowania.Dane obiekt źródłowy jest w stanie Niezainicjowany.
E_INVALIDARG
hChapter Parametr jest nieprawidłowy.E_UNEXPECTED
ISSAsynchStatus::GetStatus została wywołana danych w obiekt źródłowy, i IDBInitialize::Initialize nie została wywołana w danych obiekt źródłowy.ISSAsynchStatus::GetStatus została wywołana na zestaw wierszy, metody ITransaction::Commit lub ITransaction::Abort została wywołana, a obiekt jest w stanie zombi.
ISSAsynchStatus::GetStatus została wywołana na zestaw wierszy, które anulowano asynchronicznie w fazie inicjowania.Zestaw wierszy jest w stanie zombi.
E_FAIL
Wystąpił błąd dostawca.
Uwagi
ISSAsynchStatus::GetStatus metoda działa dokładnie tak jak IDBAsynchStatus::GetStatus metody, chyba że inicjowania danych obiekt źródłowy jest przerwana, E_UNEXPECTED jest zwracana zamiast DB_E_CANCELED (chociaż ISSAsynchStatus::WaitForAsynchCompletion zwróci DB_E_CANCELED).Wynika to z danych obiekt źródłowy nie pozostanie w zwykłym zombi po przerwaniu, dalszych operacji inicjalizacji zostanie podjęta próba.
Jeśli zestaw wierszy jest zainicjowana lub wypełnione asynchronicznie, musi obsługiwać tej metoda.
Oprócz wartości zwracane na liście ISSAsynchStatus::GetStatus może zwracać HRESULT wszelkie powodzeniu lub niepowodzeniu operacji będzie zwrócony przez metoda, która zainicjowała operacja asynchroniczna.
Niektóre operacje asynchroniczne nie być zdolny do zwracania wszystkich państw innych niż "gotowe" i "nie została zakończona".Powinny one zestaw pulProgressMax na wartość 1, wskazujący ziarnistość all-or-nothing ich oszacowania tak byłoby ich odpowiedzi, 0 i 1 lub 1 i 1.
Dostawca może zmienić pulProgressMax w kolejnych wywołań i nawet zwracają mniejszy stosunek niż wcześniej, jeśli odzwierciedla to oszacowanie poprawy stopnia ukończenia zadania.
Dostawca nie jest zobowiązany do zagwarantowania wszelkie dalsze dokładności, ale jest zalecane w przypadkach, gdzie możliwe są szacunkowych zakończenia.Takich wysiłków poprawi jakości interfejs użytkownika, ponieważ głównym korzystania z tej funkcja jest prawdopodobnie przekazać opinię postępu dla użytkownika.Zadowolenie użytkownika zwiększa jakość opinii niewidoczne, długim zadania.
Wywołanie ISSAsynchStatus::GetStatus na zainicjować danych obiekt źródłowy lub wypełnionych zestaw wierszy lub przekazując wartość eOperation inne niż DBASYNCHOP_OPEN, zwraca S_OK z pulProgress i pulProgressMax ustawiona na wartość.Jeśli ISSAsynchStatus::GetStatus jest wywoływana w obiekt utworzony z wykonanie polecenia, które aktualizuje, usuwa lub wstawia wiersze, zarówno pulProgress i pulProgressMax wskazuje całkowitą liczbę wierszy dotyczy polecenia.