Udostępnij za pośrednictwem


Klasa CRowset

Hermetyzuje obiekt zestawu wierszy OLE DB i kilka powiązanych interfejsów oraz udostępnia metody manipulowania danymi zestawu wierszy.

Składnia

template <class TAccessor = CAccessorBase>
class CRowset

Parametry

Funkcja TAccessor
Klasa akcesoriów. Wartość domyślna to CAccessorBase.

Wymagania

Nagłówek: atldbcli.h

Elementy członkowskie

Metody

Nazwa/nazwisko opis
AddRefRows Zwiększa liczbę odwołań skojarzona z bieżącym wierszem.
Zamknij Zwalnia wiersze i bieżący IRowset interfejs.
Compare Porównuje dwie zakładki przy użyciu funkcji IRowsetLocate::Compare.
CRowset Tworzy nowy CRowset obiekt i (opcjonalnie) kojarzy go z interfejsem IRowset dostarczonym jako parametr.
Usuń Usuwa wiersze z zestawu wierszy przy użyciu elementu IRowsetChange:DeleteRows.
FindNextRow Znajduje następny pasujący wiersz po określonej zakładce.
GetApproximatePosition Zwraca przybliżoną pozycję wiersza odpowiadającego zakładki.
GetData Pobiera dane z kopii wiersza zestawu wierszy.
GetDataHere Pobiera dane z określonego buforu.
GetOriginalData Pobiera dane ostatnio pobrane ze źródła danych lub przesyłane do źródła danych, ignorując oczekujące zmiany.
GetRowStatus Zwraca stan wszystkich wierszy.
Insert Tworzy i wstawia nowy wiersz przy użyciu metody IRowsetChange:InsertRow.
IsSameRow Porównuje określony wiersz z bieżącym wierszem.
MoveFirst Zmienia położenie lokalizacji następnego pobierania do pozycji początkowej.
MoveLast Przechodzi do ostatniego rekordu.
MoveNext Pobiera dane z następnego wiersza sekwencyjnego lub określoną liczbę pozycji poza następnym wierszem.
MovePrev Przechodzi do poprzedniego rekordu.
MoveToBookmark Pobiera wiersz oznaczony zakładką lub wiersz z określonym przesunięciem z tej zakładki.
MoveToRatio Pobiera wiersze rozpoczynające się od pozycji ułamkowej w zestawie wierszy.
ReleaseRows Wywołuje metodę IRowset::ReleaseRows , aby zwolnić bieżący uchwyt wiersza.
SetData Ustawia wartości danych w co najmniej jednej kolumnie wiersza przy użyciu funkcji IRowsetChange:SetData.
Cofnąć Cofa wszelkie zmiany wprowadzone w wierszu od ostatniego pobrania lub aktualizacji.
Update Przesyła wszelkie oczekujące zmiany wprowadzone w bieżącym wierszu od czasu ostatniego pobrania lub aktualizacji.
UpdateAll Przesyła wszelkie oczekujące zmiany wprowadzone we wszystkich wierszach od ostatniego pobrania lub aktualizacji.

Uwagi

W bazie danych OLE zestaw wierszy jest obiektem, za pomocą którego program ustawia i pobiera dane.

Ta klasa nie jest przeznaczona do utworzenia wystąpienia, ale raczej przekazywana jako parametr szablonu do CTable lub CCommand (CRowset jest wartością domyślną).

CRowset::AddRefRows

Wywołuje metodę IRowset::AddRefRows , aby zwiększyć (o jeden) liczbę odwołań skojarzona z bieżącym dojściem wiersza.

Składnia

HRESULT AddRefRows() throw();

Wartość zwracana

Standardowy HRESULT.

Uwagi

Ta metoda zwiększa liczbę odwołań dla bieżącego dojścia wiersza. Wywołaj metodę ReleaseRows , aby zdekrementować liczbę. Wiersze zwracane przez metody przenoszenia mają liczbę odwołań.

CRowset::Close

Zwalnia wiersze i bieżący interfejs IRowset .

Składnia

void Close() throw();

Uwagi

Ta metoda zwalnia wszystkie wiersze obecnie w zestawie wierszy.

CRowset::Compare

Porównuje dwie zakładki przy użyciu funkcji IRowsetLocate::Compare.

Składnia

HRESULT Compare(const CBookmarkBase& bookmark1,
   const CBookmarkBase& bookmark2,
   DBCOMPARE* pComparison) const throw();

Parametry

Zakładka1
[in] Pierwsza zakładka do porównania.

Zakładka2
[in] Druga zakładka do porównania.

pComparison
[out] Wskaźnik do wyniku porównania.

Wartość zwracana

Standardowy HRESULT.

Uwagi

Ta metoda wymaga opcjonalnego interfejsu IRowsetLocate, który może nie być obsługiwany przez wszystkich dostawców. Jeśli tak jest, metoda zwraca E_NOINTERFACE. Przed wywołaniem Open tabeli lub polecenia zawierającego zestaw wierszy należy również ustawić DBPROP_IRowsetLocate wartość VARIANT_TRUE.

Aby uzyskać informacje o korzystaniu z zakładek w użytkownikach, zobacz Korzystanie z zakładek.

CRowset::CRowset

Tworzy nowy CRowset obiekt i (opcjonalnie) kojarzy go z interfejsem IRowset dostarczonym jako parametr.

Składnia

CRowset();

CRowset(IRowset* pRowset);

Parametry

pRowset
[in] Wskaźnik do interfejsu, który ma być skojarzony z tą klasą IRowset .

CRowset::Delete

Wywołuje metodę IRowsetChange::D eleteRows , aby usunąć bieżący wiersz z zestawu wierszy.

Składnia

HRESULT Delete() const throw();

Wartość zwracana

Standardowy HRESULT.

CRowset::FindNextRow

Znajduje następny pasujący wiersz po określonej zakładce.

Składnia

HRESULT FindNextRow(DBCOMPAREOP op,
   BYTE* pData,
   DBTYPE wType,
   DBLENGTH nLength,
   BYTE bPrecision,
   BYTE bScale,
   BOOL bSkipCurrent = TRUE,
   CBookmarkBase* pBookmark = NULL) throw();

Parametry

Op
[in] Operacja do użycia w porównywaniu wartości wierszy. Aby uzyskać informacje o wartościach, zobacz IRowsetFind::FindNextRow.

pData
[in] Wskaźnik do wartości, która ma być dopasowana.

wType
[in] Wskazuje typ danych części buforu wartości. Aby uzyskać informacje na temat wskaźników typów, zobacz Typy danych w dokumentacji programisty OLE DB w zestawie Windows SDK.

nLength
[in] Długość w bajtach struktury danych konsumenta przydzielonej dla wartości danych. Aby uzyskać szczegółowe informacje, zobacz opis cbMaxLen struktury DBBINDING w dokumentacji programisty OLE DB.

bPrecision
[in] Maksymalna precyzja używana podczas pobierania danych. Używane tylko wtedy, gdy wType jest DBTYPE_NUMERIC. Aby uzyskać więcej informacji, zobacz Konwersje dotyczące DBTYPE_NUMERIC lub DBTYPE_DECIMAL w dokumentacji programisty OLE DB.

bScale
[in] Skala używana podczas pobierania danych. Używane tylko wtedy, gdy wType jest DBTYPE_NUMERIC lub DBTYPE_DECIMAL. Aby uzyskać więcej informacji, zobacz Konwersje dotyczące DBTYPE_NUMERIC lub DBTYPE_DECIMAL w dokumentacji programisty OLE DB.

bSkipCurrent
[in] Liczba wierszy z zakładki, w której ma być uruchamiane wyszukiwanie.

pBookmark
[in] Zakładka pozycji, w której należy rozpocząć wyszukiwanie.

Wartość zwracana

Standardowy HRESULT.

Uwagi

Ta metoda wymaga opcjonalnego interfejsu IRowsetFind, który może nie być obsługiwany przez wszystkich dostawców. Jeśli tak jest, metoda zwraca E_NOINTERFACE. Przed wywołaniem Open tabeli lub polecenia zawierającego zestaw wierszy należy również ustawić DBPROP_IRowsetFind wartość VARIANT_TRUE.

Aby uzyskać informacje o korzystaniu z zakładek w użytkownikach, zobacz Korzystanie z zakładek.

CRowset::GetApproximatePosition

Zwraca przybliżoną pozycję wiersza odpowiadającego zakładki.

Składnia

HRESULT GetApproximatePosition(const CBookmarkBase* pBookmark,
   DBCOUNTITEM* pPosition,
   DBCOUNTITEM* pcRows) throw();

Parametry

pBookmark
[in] Wskaźnik do zakładki, który identyfikuje wiersz, którego pozycja ma zostać znaleziona. Wartość NULL, jeśli wymagana jest tylko liczba wierszy.

pPosition
[out] Wskaźnik do lokalizacji, w której GetApproximatePosition zwraca położenie wiersza. Wartość NULL, jeśli pozycja nie jest wymagana.

pcRows
[out] Wskaźnik do lokalizacji, w której GetApproximatePosition zwraca całkowitą liczbę wierszy. Wartość NULL, jeśli liczba wierszy nie jest wymagana.

Wartość zwracana

Standardowy HRESULT.

Uwagi

Ta metoda wymaga opcjonalnego interfejsu IRowsetScroll, który może nie być obsługiwany przez wszystkich dostawców. Jeśli tak jest, metoda zwraca E_NOINTERFACE. Przed wywołaniem Open tabeli lub polecenia zawierającego zestaw wierszy należy również ustawić DBPROP_IRowsetScroll wartość VARIANT_TRUE.

Aby uzyskać informacje o korzystaniu z zakładek w użytkownikach, zobacz Korzystanie z zakładek.

CRowset::GetData

Pobiera dane z kopii wiersza zestawu wierszy.

Składnia

HRESULT GetData() throw();

HRESULT GetData(int nAccessor) throw();

Parametry

nAccessor
[in] Numer indeksu (przesunięcie zerowe) metody dostępu do uzyskiwania dostępu do danych.

Wartość zwracana

Standardowy HRESULT.

Uwagi

Jeśli określisz metodę dostępu, która nie jest funkcjami automatycznego dostępu w BEGIN_ACCESSOR, użyj tej metody, aby jawnie pobrać dane, przekazując numer dostępu.

CRowset::GetDataHere

Pobiera dane z bieżącego wiersza i umieszcza je w określonym buforze.

Składnia

HRESULT GetDataHere(int nAccessor,
   void* pBuffer) throw();

Parametry

nAccessor
[in] Numer indeksu metody dostępu do użycia do uzyskiwania dostępu do danych.

pBuffer
[out] Bufor, w którym należy umieścić dane dla bieżącego rekordu.

Wartość zwracana

Standardowy HRESULT.

Uwagi

Aby zapoznać się z przykładem używania tej funkcji, zobacz przykład MultiRead.

CRowset::GetOriginalData

Wywołuje metodę IRowsetUpdate::GetOriginalData pobierania danych ostatnio pobranych z lub przesłanych do źródła danych.

Składnia

HRESULT GetOriginalData() throw();

Wartość zwracana

Standardowy HRESULT.

Uwagi

Ta metoda pobiera ostatnio pobrane dane ze źródła danych lub przesyłane do źródła danych; nie pobiera wartości na podstawie oczekujących zmian.

Ta metoda wymaga opcjonalnego interfejsu IRowsetUpdate, który może nie być obsługiwany przez wszystkich dostawców. Jeśli tak jest, metoda zwraca E_NOINTERFACE. Przed wywołaniem Open tabeli lub polecenia zawierającego zestaw wierszy należy również ustawić DBPROP_IRowsetUpdate wartość VARIANT_TRUE.

CRowset::GetRowStatus

Zwraca stan wszystkich wierszy.

Składnia

HRESULT GetRowStatus(DBPENDINGSTATUS* pStatus) const throw();

Parametry

pStatus
[out] Wskaźnik do lokalizacji, w której GetRowStatus zwraca wartość stanu. Zobacz DBPENDINGSTATUS w dokumentacji programisty OLE DB.

Wartość zwracana

Standardowy HRESULT.

Uwagi

Ta metoda wymaga opcjonalnego interfejsu IRowsetUpdate, który może nie być obsługiwany przez wszystkich dostawców. Jeśli tak jest, metoda zwraca E_NOINTERFACE. Przed wywołaniem Open tabeli lub polecenia zawierającego zestaw wierszy należy również ustawić DBPROP_IRowsetUpdate wartość VARIANT_TRUE.

CRowset::Insert

Tworzy i inicjuje nowy wiersz przy użyciu danych z metody dostępu.

Składnia

HRESULT Insert(int nAccessor = 0,
   bool bGetHRow = false) throw();

Parametry

nAccessor
[in] Liczba metod dostępu używanych do wstawiania danych.

bGetHRow
[in] Wskazuje, czy uchwyt dla wstawionego wiersza jest pobierany.

Wartość zwracana

Standardowy HRESULT.

Uwagi

Ta metoda wymaga opcjonalnego interfejsu IRowsetChange, który może nie być obsługiwany przez wszystkich dostawców. Jeśli tak jest, metoda zwraca E_NOINTERFACE. Przed wywołaniem Open tabeli lub polecenia zawierającego zestaw wierszy należy również ustawić DBPROP_IRowsetChange wartość VARIANT_TRUE.

Wstawianie może zakończyć się niepowodzeniem, jeśli co najmniej jedna kolumna nie jest zapisywalna. Zmodyfikuj mapę kursora, aby to poprawić.

Przykład

W poniższym przykładzie pokazano, jak uzyskać dostęp do źródła danych za pośrednictwem zestawu wierszy, a następnie wstawić ciąg przy użyciu tabeli w tym zestawie wierszy.

Najpierw utwórz klasę tabeli, wstawiając nowy obiekt ATL do projektu. Na przykład kliknij prawym przyciskiem myszy projekt w okienku Obszar roboczy i wybierz pozycję Nowy obiekt ATL. W kategorii Dostęp do danych wybierz pozycję Odbiorca. Utwórz obiekt odbiorcy typu Tabela. (Wybieranie Tabela tworzy zestaw wierszy bezpośrednio z tabeli. Wybranie polecenia powoduje utworzenie zestawu wierszy za pomocą polecenia SQL). Wybierz źródło danych, określając tabelę, za pomocą której chcesz uzyskać dostęp do tego źródła danych. Jeśli wywołasz obiekt odbiorcy CCustomerTable, zaimplementujesz kod wstawiania w następujący sposób:

// Access the rowset using the wizard-generated class, CCustomerTable
CCustomerTable rs;           // Your CTable-derived class

// Insert a customer
// Note that for fixed-length fields such as billing ID it isn't necessary
// to set the length
rs.m_BillingID = 5002;
rs.m_dwBillingIDStatus = DBSTATUS_S_OK;

_tcscpy_s(rs.m_ContactFirstName, sizeof(rs.m_ContactFirstName) / sizeof(TCHAR), 
   _T("Malcolm"));
rs.m_dwContactFirstNameLength = 7;
rs.m_dwContactFirstNameStatus = DBSTATUS_S_OK;

_tcscpy_s(rs.m_L_Name, sizeof(rs.m_L_Name) / sizeof(TCHAR), _T("Reynolds"));
rs.m_dwL_NameLength = 8;
rs.m_dwContactFirstNameStatus = DBSTATUS_S_OK;

rs.m_CustomerID = 2005;
rs.m_dwCustomerIDStatus = DBSTATUS_S_OK;

_tcscpy_s(rs.m_PostalCode, sizeof(rs.m_PostalCode) / sizeof(TCHAR), 
   _T("34213-4444"));
rs.m_dwPostalCodeLength = 10;
rs.m_dwPostalCodeStatus = DBSTATUS_S_OK;

HRESULT hr = rs.Insert();
if (FAILED(hr))
{
   ATLTRACE(_T("Insert failed: 0x%X\n"), hr);
}

CRowset::IsSameRow

Porównuje określony wiersz z bieżącym wierszem.

Składnia

HRESULT IsSameRow(HROW hRow) const throw();

Parametry

hRow
[in] Uchwyt do wiersza, który ma być porównywany z bieżącym wierszem.

Wartość zwracana

Standardowy HRESULT. S_OK wskazuje, że wiersze są takie same. Aby uzyskać inne wartości, zobacz IRowsetIndentity::IsSameRow w dokumentacji programisty OLE DB w zestawie Windows SDK.

CRowset::MoveFirst

Przenosi kursor do początkowej pozycji i pobiera początkowy wiersz.

Składnia

HRESULT MoveFirst() throw();

Wartość zwracana

Standardowy HRESULT.

Uwagi

Wywołuje metodę IRowset::RestartPosition , aby zmienić położenie lokalizacji następnego pobierania do pozycji początkowej (pozycja, która była lokalizacją następnego pobierania po utworzeniu zestawu wierszy) i pobiera początkowy wiersz.

CRowset::MoveLast

Przenosi kursor do ostatniego wiersza.

Składnia

HRESULT MoveLast() throw();

Wartość zwracana

Standardowy HRESULT.

Uwagi

Wywołuje metodę IRowset::RestartPosition , aby zmienić położenie lokalizacji następnego pobierania do ostatniej pozycji i pobiera ostatni wiersz.

Ta metoda wymaga ustawienia DBPROP_CANSCROLLBACKWARDS VARIANT_TRUE przed wywołaniem Open tabeli lub polecenia zawierającego zestaw wierszy. (Aby uzyskać lepszą wydajność, można również ustawić wartość DBPROP_QUICKRESTART VARIANT_TRUE).

CRowset::MoveNext

Przenosi kursor do następnego rekordu.

Składnia

HRESULT MoveNext() throw();

HRESULT MoveNext(LONG lSkip,
   bool bForward= true) throw();

Parametry

lSkip
[in] Liczba wierszy do pominięcia przed pobraniem.

bForward
[in] Przekaż true , aby przejść do przodu do następnego rekordu, false aby przejść do tyłu.

Wartość zwracana

Standardowy HRESULT. Po osiągnięciu końca zestawu wierszy zwraca DB_S_ENDOFROWSET.

Uwagi

Pobiera następny wiersz sekwencyjny z CRowset obiektu, pamiętając poprzednią pozycję. Opcjonalnie możesz pominąć wiersze lSkip lub przejść do tyłu.

Ta metoda wymaga ustawienia następujących właściwości przed wywołaniem metody Open w tabeli lub w poleceniu zawierającym zestaw wierszy:

  • DBPROP_CANSCROLLBACKWARDS musi być VARIANT_TRUE, jeśli lSkip< 0

  • DBPROP_CANFETCHBACKWARDS musi być VARIANT_TRUE, jeśli bForward = false

W przeciwnym razie (jeśli lSkip>= 0 i bForward = true), nie trzeba ustawiać żadnych dodatkowych właściwości.

CRowset::MovePrev

Przenosi kursor do poprzedniego rekordu.

Składnia

HRESULT MovePrev() throw();

Wartość zwracana

Standardowy HRESULT.

Uwagi

Ta metoda wymaga ustawienia DBPROP_CANFETCHBACKWARDS lub DBPROP_CANSCROLLBACKWARDS VARIANT_TRUE przed wywołaniem Open tabeli lub polecenia zawierającego zestaw wierszy.

CRowset::MoveToBookmark

Pobiera wiersz oznaczony zakładką lub wiersz z określonym przesunięciem (lSkip) z tej zakładki.

Składnia

HRESULT MoveToBookmark(const CBookmarkBase& bookmark,
   LONG lSkip = 0) throw();

Parametry

bookmark
[in] Zakładka oznaczającą lokalizację, z której chcesz pobrać dane.

lSkip
[in] Liczba wierszy z zakładki do wiersza docelowego. Jeśli lSkip ma wartość zero, pierwszy wiersz pobrany jest wierszem zakładki. Jeśli lSkip ma wartość 1, pierwszy wiersz pobrany jest wierszem po wierszu zakładki. Jeśli lSkip ma wartość -1, pierwszy wiersz pobrany jest wierszem przed wierszem zakładki.

Wartość zwracana

Standardowy HRESULT.

Uwagi

Ta metoda wymaga opcjonalnego interfejsu IRowsetLocate, który może nie być obsługiwany przez wszystkich dostawców. Jeśli tak jest, metoda zwraca E_NOINTERFACE. Przed wywołaniem Open tabeli lub polecenia zawierającego zestaw wierszy należy również ustawić DBPROP_IRowsetLocate wartość VARIANT_TRUE i ustawić DBPROP_CANFETCHBACKWARDS wartość na VARIANT_TRUE.

Aby uzyskać informacje o korzystaniu z zakładek w użytkownikach, zobacz Korzystanie z zakładek.

CRowset::MoveToRatio

Pobiera wiersze rozpoczynające się od pozycji ułamkowej w zestawie wierszy.

Składnia

HRESULT MoveToRatio(DBCOUNTITEM nNumerator,
   DBCOUNTITEM nDenominator,bool bForward = true) throw();

Parametry

nNumerator
[in] Licznik używany do określania pozycji ułamkowej, z której mają być pobierane dane.

nDenominator
[in] Mianownik używany do określania pozycji ułamkowej, z której mają być pobierane dane.

bForward
[in] Wskazuje, czy iść do przodu, czy do tyłu. Wartość domyślna to forward.

Wartość zwracana

Standardowy HRESULT.

Uwagi

MoveToRatio pobiera wiersze w przybliżeniu do następującej formuły:

(nNumerator * RowsetSize ) / nDenominator

gdzie RowsetSize to rozmiar zestawu wierszy mierzony w wierszach. Dokładność tej formuły zależy od określonego dostawcy. Aby uzyskać szczegółowe informacje, zobacz IRowsetScroll::GetRowsAtRatio.

Ta metoda wymaga opcjonalnego interfejsu IRowsetScroll, który może nie być obsługiwany przez wszystkich dostawców. Jeśli tak jest, metoda zwraca E_NOINTERFACE. Przed wywołaniem Open tabeli lub polecenia zawierającego zestaw wierszy należy również ustawić DBPROP_IRowsetScroll wartość VARIANT_TRUE.

CRowset::ReleaseRows

Wywołuje metodę IRowset::ReleaseRows , aby zwolnić bieżący uchwyt wiersza.

Składnia

HRESULT ReleaseRows() throw();

Wartość zwracana

Standardowy HRESULT.

CRowset::SetData

Ustawia wartości danych w co najmniej jednej kolumnie wiersza.

Składnia

HRESULT SetData() const throw();

HRESULT SetData(int nAccessor) const throw();

Parametry

nAccessor
[in] Liczba metod dostępu używanych do uzyskiwania dostępu do danych.

Wartość zwracana

Standardowy HRESULT.

Uwagi

SetData W przypadku formularza, który nie akceptuje żadnych argumentów, wszystkie metody dostępu są używane do aktualizowania. Zazwyczaj wywołuje się metodę SetData ustawiania wartości danych w kolumnach z rzędu, a następnie wywołaj metodę Update , aby przesłać te zmiany.

Ta metoda wymaga opcjonalnego interfejsu IRowsetChange, który może nie być obsługiwany przez wszystkich dostawców. Jeśli tak jest, metoda zwraca E_NOINTERFACE. Przed wywołaniem Open tabeli lub polecenia zawierającego zestaw wierszy należy również ustawić DBPROP_IRowsetChange wartość VARIANT_TRUE.

Operacja ustawienia może zakończyć się niepowodzeniem, jeśli co najmniej jedna kolumna nie jest zapisywalna. Zmodyfikuj mapę kursora, aby to poprawić.

CRowset::Undo

Cofa wszelkie zmiany wprowadzone w wierszu od ostatniego pobrania lub aktualizacji.

Składnia

HRESULT Undo(DBCOUNTITEM* pcRows = NULL,
   HROW* phRow = NULL,
   DBROWSTATUS* pStatus = NULL) throw();

Parametry

pcRows
[out] Wskaźnik do lokalizacji, w której Undo zwraca liczbę wierszy, które próbował cofnąć, jeśli jest to wymagane.

phRow
[out] Wskaźnik do lokalizacji, w której Undo zwraca tablicę dojść do wszystkich wierszy, które próbował cofnąć, jeśli jest to wymagane.

pStatus
[out] Wskaźnik do lokalizacji, w której Undo zwraca wartość stanu wiersza. Jeśli parametr pStatus ma wartość null, nie jest zwracany żaden stan.

Wartość zwracana

Standardowy HRESULT.

Uwagi

Ta metoda wymaga opcjonalnego interfejsu IRowsetUpdate, który może nie być obsługiwany przez wszystkich dostawców. Jeśli tak jest, metoda zwraca E_NOINTERFACE. Przed wywołaniem Open tabeli lub polecenia zawierającego zestaw wierszy należy również ustawić DBPROP_IRowsetUpdate wartość VARIANT_TRUE.

CRowset::Update

Przesyła wszelkie oczekujące zmiany wprowadzone w bieżącym wierszu od ostatniego pobrania lub Update wywołania go.

Składnia

HRESULT Update(DBCOUNTITEM* pcRows = NULL,
   HROW* phRow = NULL,
   DBROWSTATUS* pStatus = NULL) throw();

Parametry

pcRows
[out] Wskaźnik do lokalizacji, w której Update zwraca liczbę wierszy, które próbował zaktualizować, jeśli jest to wymagane.

phRow
[out] Wskaźnik do lokalizacji, w której Update zwraca uchwyt wiersza, który próbował zaktualizować. Nie jest zwracana żadna obsługa, jeśli parametr phRow ma wartość null.

pStatus
[out] Wskaźnik do lokalizacji, w której Update zwraca wartość stanu wiersza. Jeśli parametr pStatus ma wartość null, nie jest zwracany żaden stan.

Wartość zwracana

Standardowy HRESULT.

Uwagi

Przesyła wszelkie oczekujące zmiany wprowadzone w bieżącym wierszu od czasu ostatniego pobrania lub zaktualizowania tego wiersza (przy użyciu Update lub UpdateAll). Zazwyczaj wywołaj metodę SetData , aby ustawić wartości danych w kolumnach w wierszu, a następnie wywołać metodę Update w celu przesłania tych zmian.

Ta metoda wymaga opcjonalnego interfejsu IRowsetUpdate, który może nie być obsługiwany przez wszystkich dostawców. Jeśli tak jest, metoda zwraca E_NOINTERFACE. Przed wywołaniem Open tabeli lub polecenia zawierającego zestaw wierszy należy również ustawić DBPROP_IRowsetUpdate wartość VARIANT_TRUE.

CRowset::UpdateAll

Przesyła wszelkie oczekujące zmiany wprowadzone we wszystkich wierszach od ostatniego pobrania lub Update wywołania.

Składnia

HRESULT UpdateAll(DBCOUNTITEM* pcRows = NULL,
   HROW** pphRow = NULL,
   DBROWSTATUS** ppStatus = NULL) throw();

Parametry

pcRows
[out] Wskaźnik do lokalizacji, w której UpdateAll zwraca liczbę wierszy, które próbował zaktualizować, jeśli jest to wymagane.

pphRow
[out] Wskaźnik do pamięci, w którym UpdateAll zwraca uchwyt wiersza, który próbował zaktualizować. Nie jest zwracana żadna obsługa, jeśli pphRow ma wartość null.

ppStatus
[out] Wskaźnik do lokalizacji, w której Update zwraca wartość stanu wiersza. Jeśli parametr ppStatus ma wartość null, nie jest zwracany żaden stan.

Uwagi

Przesyła wszelkie oczekujące zmiany wprowadzone we wszystkich wierszach, ponieważ te wiersze zostały ostatnio pobrane lub zaktualizowane przy użyciu aktualizacji lub UpdateAll. UpdateAll Zaktualizuje każdy wiersz, który został zmodyfikowany, niezależnie od tego, czy nadal masz dojście do nich (zobacz pphRow), czy nie.

Jeśli na przykład użyto Insert do wstawienia pięciu wierszy w zestawie wierszy, możesz wywołać Update je pięć razy lub wywołać UpdateAll raz, aby zaktualizować je wszystkie.

Ta metoda wymaga opcjonalnego interfejsu IRowsetUpdate, który może nie być obsługiwany przez wszystkich dostawców. Jeśli tak jest, metoda zwraca E_NOINTERFACE. Przed wywołaniem Open tabeli lub polecenia zawierającego zestaw wierszy należy również ustawić DBPROP_IRowsetUpdate wartość VARIANT_TRUE.

Wartość zwracana

Standardowy HRESULT.

Zobacz też

Przykład programu DBViewer
Przykład MultiRead
Przykład atrybutów wielowątków
Szablony konsumentów OLE DB
Szablony konsumentów OLE DB — dokumentacja