Udostępnij za pośrednictwem


ISSAsynchStatus::GetStatus (OLE DB)

Zwraca stan asynchronicznego wykonywania operacji.

HRESULT GetStatus(
        HCHAPTER hChapter,
        DBASYNCHOP eOperation,
        DBCOUNTITEM *pulProgress,
        DBCOUNTITEM *pulProgressMax,
        DBASYNCHPHASE *peAsynchPhase,
        LPOLESTR *ppwszStatusText);

Argumenty

  • hChapter[w]
    Dojście do rozdziału.Jeśli obiekt, przy czym sondowania nie jest obiektem zestaw wierszy lub operacja nie ma zastosowania do rozdziału, to powinna być równa DB_NULL_HCHAPTER, który jest ignorowany przez dostawca.

  • eOperation[w]
    Dla którego żądana jest asynchroniczny stan operacja.Powinien to być następujące wartości:

    DBASYNCHOP_OPEN — konsument żąda informacji o asynchronicznych otwarcia lub zapełnianie zestawu zestaw wierszy lub o inicjowania asynchronicznego danych obiekt źródłowy.Jeśli dostawca jest zgodny z interfejsem 2.5 dostawcy OLE DB, na który obsługuje bezpośrednie wiązanie adresu URL, konsument żąda informacji dotyczące inicjowania asynchronicznego lub zapełnianie urządzenie źródłowe danych, zestaw wierszy, wiersza lub obiektu strumienia.

  • pulProgress[Brak]
    Wskaźnik do pamięci, w którym chcesz przywrócić bieżący postęp operacji asynchronicznej względem Oczekiwana maksymalna wskazanych w pulProgressMax parametr.Aby uzyskać więcej informacji na temat znaczenia pulProgress, zobacz opis peAsynchPhase.

    Jeśli pulProgress jest null wskaźnika, zwracana jest żadnego postępu.

  • pulProgressMax[Brak]
    Wskaźnik do pamięci, w której zostanie zwrócona wartość oczekiwana maksymalna pulProgress parametr.Wartość ta może się zmieniać między wywołania tej metoda.Aby uzyskać więcej informacji na temat znaczenia pulProgressMax, zobacz opis peAsynchPhase.

    Jeśli pulProgressMax jest pusty wskaźnik, nie oczekiwana wartość maksymalna jest zwracany.

  • peAsynchPhase[Brak]
    Wskaźnik do pamięci, w której zostanie zwrócona o dodatkowe informacje dotyczące postępów operacji asynchronicznej.Prawidłowe wartości to:

    DBASYNCHPHASE_INITIALIZATION — obiekt jest w fazie inicjowania.Argumenty pulProgress and pulProgressMax wskazują szacowany stopień zaawansowania.Obiekt jest nie zostały jeszcze całkowicie materialized.Podjęto próbę wywołania inne interfejsy może zakończyć się niepowodzeniem, a pełny zestaw interfejsów mogą nie być dostępne dla obiektu.Jeśli operacja asynchroniczna została wynik telefonicznej ICommand::wykonać dla polecenia, które aktualizacje, usuwa lub wstawia wiersze i w razie cParamSets jest większe niż 1, pulProgress and pulProgressMax może wskazywać postępu dla pojedynczego zestaw parametrów lub pełnego tablica zestawów parametrów.

    DBASYNCHPHASE_POPULATION — obiekt jest w fazie zapełnianie.Mimo że zestaw wierszy jest w pełni zainicjowany i pełen zakres interfejsów jest dostępna na obiekcie, mogą być dodatkowe wiersze, które nie zostały jeszcze wypełnione do zestawu wierszy.Podczas pulProgress and pulProgressMax może być oparta na liczbie zestaw wierszy wypełniona, zwykle są one oparte na czasie lub nakładu pracy wymaganej do wypełnienia zestawu zestaw wierszy.Wywołujący powinny używać tych informacji w związku z tym, jak surowca szacowany czas procesu może potrwać, nie liczba wierszy ewentualnego.Ta faza jest zwracana tylko w trakcie zapełnianie zestawu zestaw wierszy, nigdy nie jest ona zwracana podczas inicjowania obiektu urządzenie źródłowe danych lub przez wykonanie polecenia, który aktualizuje, usuwa lub wstawia wiersze.

    DBASYNCHPHASE_COMPLETE — wszystkie przetwarzania asynchronicznego obiektu została zakończona.ISSAsynchStatus::GetStatus zwraca HRESULT wskazujący wynik operacji.Zazwyczaj jest to wartość HRESULT, które mogłyby zostały zwrócone była operacja została wywołana synchronicznie.Jeśli operacja asynchroniczna została wynik telefonicznej ICommand::wykonać dla polecenia, które aktualizacje, usuwa lub wstawia wiersze pulProgress and pulProgressMax nie jest równa całkowitej liczby wierszy wpływa na 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 jest pusty wskaźnik, zwracany jest 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::wykonać dla polecenia, które aktualizacje, usuwa lub wstawia wiersze pulProgress jest równa całkowitej liczby 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 odróżnienia różnych elementów operacji — na przykład różne zasoby, do którego.Ciąg ten jest zlokalizowany zgodnie z właściwości DBPROP_INIT_LCID na danych obiekt źródłowy.

    Jeśli ppwszStatusText jest inne niż null na wejściu, dostawca zwraca stan skojarzony z określonym elementem, identyfikowane przez ppwszStatusText.Jeśli ppwszStatusText nie wskazuje elementu eOperation, dostawca zwraca S_OK z pulProgress and pulProgressMax ustawić tę samą wartość.Jeśli dostawca nie rozróżnia między elementami na podstawie identyfikatora tekstowa, ustawienie ppwszStatusText do wartości NULL i zwraca informacje dotyczące działania jako całości; inaczej, jeżeli ppwszStatusText jest inne niż null na wejściu, dostawca pozostawia ppwszStatusText bez zmian.

    Jeśli ppwszStatusText ma wartość null na wejściu, dostawca ustawia ppwszStatusText wartość wskazującą, więcej informacji na temat działania lub wartość NULL, jeśli informacje nie są dostępne lub ISSAsynchStatus::GetStatus zwraca błąd.Kiedy ppwszStatusText ma wartość null na wejściu, dostawca przydziela pamięć dla ciąg stanu i zwraca adres pamięci.Konsument zwalnia to pamięć z IMalloc::Free , gdy nie są już potrzebne ciąg.

    Jeśli ppwszStatusText ma wartość NULL na wejściu, zostanie zwrócony ciąg nie stanie, a dostawca zwraca dowiedzieć się, każdy element operacji lub operacji w zasadzie.

Wartości kodów powrotnych

  • S_OK
    Metoda zwróciła pomyślnie.

    • Jeśli peAsynchPhase jest równa DBASYNCHPHASE_INITIALIZATION, obiekt nie został jeszcze całkowicie zainicjowany; próby wywołania inne interfejsy może zakończyć się niepowodzeniem i pełny zestaw interfejsów mogą nie być dostępne dla obiektu.

    • Jeśli peAsynchPhase jest równe do DBASYNCHPHASE_POPULATION, zestaw wierszy jest w pełni zainicjowany i pełen zakres interfejsów jest dostępna na obiekcie, jednak mogą być dodatkowe wiersze, które nie zostały jeszcze wypełnione do zestawu wierszy.

    • Jeśli peAsynchPhase jest równa DBASYNCHPHASE_COMPLETE, wszystkie przetwarzania asynchronicznego obiektu została zakoń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 zapełnianie, ale pozostaje zestawu zestaw wierszy, które jest ważne dla zestaw wierszy już wypełnione.

    Przetwarzanie asynchroniczne zostało anulowane podczas danych obiekt źródłowy inicjowania.Dane obiekt źródłowy jest w stanie Niezainicjowany.

  • E_INVALIDARG
    The hChapter parameter is incorrect.

  • E_UNEXPECTED
    ISSAsynchStatus::GetStatus została wywołana danych w obiekt źródłowy i IDBInitialize::Initialize nie został wywołany z danych obiekt źródłowy.

    ISSAsynchStatus::GetStatus została wywołana w zestawie zestaw wierszy Metody ITransaction::zatwierdzanie or ITransaction::Abort została wywołana, a obiekt jest w stanie zombi.

    ISSAsynchStatus::GetStatus została wywołana w zestawie zestaw wierszy, które asynchronicznie zostało anulowane w fazie jego inicjowania.Zestaw wierszy jest w stanie zombi.

  • E_FAIL
    Wystąpił błąd specyficzny dla dostawca.

Remarks

The ISSAsynchStatus::GetStatus metoda behaves exactly as the IDBAsynchStatus::GetStatus metoda except that if initialization of a data obiekt źródłowy is aborted, E_UNEXPECTED is returned rather than DB_E_CANCELED (although ISSAsynchStatus::WaitForAsynchCompletion will return DB_E_CANCELED).Dzieje się tak, ponieważ obiekt urządzenie źródłowe danych nie jest pozostawiony w stanie zombi zwykle po przerwanie, może być próba dalszych operacji inicjowania.

Jeśli zestaw wierszy jest zainicjowane lub wypełniona asynchronicznie, musi obsługiwać tę metoda.

Oprócz wartości zwracane w liście, ISSAsynchStatus::GetStatus może zwracać żadnych HRESULT czy zwróconych przez metoda, która zainicjowała operacja asynchroniczna, wskazujące na powodzenie lub Niepowodzenie operacji.

Niektóre operacje asynchroniczne nie można zwrócić wszystkie stany innym niż "" gotowe"i"nie została zakończona".Powinny one zestaw pulProgressMax na wartość 1, wskazująca all-or-nothing ziarnistość ich szacowania, więc odpowiedzi będzie 0/1 lub 1/1.

Dostawca może ulec zmianie. pulProgressMax w kolejnych wywołaniach i nawet zwracają współczynnika mniejszego niż wcześniej, jeśli odzwierciedla to oszacowanie polepszanie stopień ukończenia tego zadania.

Dostawca nie jest zobowiązany do zagwarantowania wszelkie dalsze dokładności, ale aby to zrobić w przypadkach, gdy uzasadnione oszacowania zakończenia są możliwe.Takich działań poprawi jakości interfejs użytkownika, ponieważ głównym zastosowaniem tej funkcja jest prawdopodobnie Aby przesłać opinię postępu dla użytkownika.Zadowolenie użytkowników zwiększa się jakości informacji zwrotnych dotyczących zadania programu niewidoczne, długim.

Wywołanie ISSAsynchStatus::GetStatus na obiekt urządzenie źródłowe danych zainicjować wypełnionego zestaw wierszy lub przekazując wartość eOperation innych niż DBASYNCHOP_OPEN, zwraca S_OK z pulProgress and pulProgressMax ustawić tę samą wartość.Jeśli ISSAsynchStatus::GetStatus wywoływana jest obiekt utworzony na podstawie wykonanie polecenia, które aktualizacje, usuwa lub wstawia wierszy, zarówno pulProgress and pulProgressMax wskazuje całkowitą liczbę wierszy wpływa na polecenia.