Udostępnij za pośrednictwem


IRowsetUpdateImpl — Klasa

Implementacja interfejsu IRowsetUpdate szablonów OLE DB.

Składnia

template <
   class T,
   class Storage,
   class UpdateArray = CAtlArray<Storage>,
   class RowClass = CSimpleRow,
   class MapClass = CAtlMap <RowClass::KeyType, RowClass*>
>

class IRowsetUpdateImpl : public IRowsetChangeImpl<
   T,
   Storage,
   IRowsetUpdate,
   RowClass,
   MapClass>

Parametry

T
Klasa pochodząca z IRowsetUpdateImplklasy .

Storage
Rekord użytkownika.

UpdateArray
Tablica zawierająca buforowane dane służące do aktualizowania zestawu wierszy.

RowClass
Jednostka magazynu dla elementu HROW.

MapClass
Jednostka magazynu dla wszystkich dojść wierszy przechowywanych przez dostawcę.

Wymagania

Nagłówek: atldb.h

Elementy członkowskie

Metody interfejsu (używane z IRowsetChange)

Nazwa/nazwisko opis
SetData Ustawia wartości danych w co najmniej jednej kolumnie.

Metody interfejsu (używane z IRowsetUpdate)

Nazwa/nazwisko opis
GetOriginalData Pobiera dane ostatnio przesyłane do lub uzyskane ze źródła danych, ignorując oczekujące zmiany.
GetPendingRows Zwraca listę wierszy z oczekującymi zmianami.
GetRowStatus Zwraca stan określonych wierszy.
Cofnąć Cofa wszelkie zmiany w wierszu od czasu ostatniego pobrania lub aktualizacji.
Update Przesyła wszelkie zmiany wprowadzone w wierszu od czasu ostatniego pobrania lub aktualizacji.

Metody implementacji (wywołanie zwrotne)

Nazwa/nazwisko opis
IsUpdateAllowed Służy do sprawdzania bezpieczeństwa, integralności itd. przed zezwoleniem na aktualizacje.

Składowe danych

Nazwa/nazwisko opis
m_mapCachedData Zawiera oryginalne dane dla operacji odroczonej.

Uwagi

Najpierw należy przeczytać i zrozumieć dokumentację dotyczącą elementu IRowsetChange, ponieważ wszystkie opisane tam również elementy mają zastosowanie tutaj. Należy również przeczytać rozdział 6 dokumentacji programisty OLE DB na temat ustawień danych.

IRowsetUpdateImpl implementuje interfejs OLE DB IRowsetUpdate , który umożliwia konsumentom opóźnienie transmisji zmian wprowadzonych IRowsetChange w źródle danych i cofanie zmian przed przesłaniem.

Ważne

Zdecydowanie zaleca się przeczytanie następującej dokumentacji PRZED podjęciem próby zaimplementowania dostawcy:

IRowsetUpdateImpl::SetData

Ustawia wartości danych w co najmniej jednej kolumnie.

Składnia

STDMETHOD (SetData )(HROW hRow,
   HACCESSOR hAccessor,
   void* pSrcData);

Parametry

Zobacz IRowsetChange::SetData w dokumentacji programisty OLE DB.

Uwagi

Ta metoda zastępuje metodę IRowsetChangeImpl::SetData , ale zawiera buforowanie oryginalnych danych w celu zezwolenia na natychmiastowe lub odroczone przetwarzanie operacji.

IRowsetUpdateImpl::GetOriginalData

Pobiera dane ostatnio przesyłane do lub uzyskane ze źródła danych, ignorując oczekujące zmiany.

Składnia

STDMETHOD (GetOriginalData )(HROW hRow,
   HACCESSOR hAccessor,
   void* pData);

Parametry

Zobacz IRowsetUpdate::GetOriginalData w dokumentacji programisty OLE DB.

IRowsetUpdateImpl::GetPendingRows

Zwraca listę wierszy z oczekującymi zmianami.

Składnia

STDMETHOD (GetPendingRows )(HCHAPTER /* hReserved */,
   DBPENDINGSTATUS dwRowStatus,
   DBCOUNTITEM* pcPendingRows,
   HROW** prgPendingRows,
   DBPENDINGSTATUS** prgPendingStatus);

Parametry

hReserved
[in] Odpowiada parametrowi hChapter w elemencie IRowsetUpdate::GetPendingRows.

Aby uzyskać inne parametry, zobacz IRowsetUpdate::GetPendingRows w dokumentacji programisty OLE DB.

Uwagi

Aby uzyskać więcej informacji, zobacz IRowsetUpdate::GetPendingRows w dokumentacji programisty OLE DB.

IRowsetUpdateImpl::GetRowStatus

Zwraca stan określonych wierszy.

Składnia

STDMETHOD (GetRowStatus )(HCHAPTER /* hReserved */,
   DBCOUNTITEM cRows,
   const HROW rghRows[],
   DBPENDINGSTATUS rgPendingStatus[]);

Parametry

hReserved
[in] Odpowiada parametrowi hChapter w parametrze IRowsetUpdate::GetRowStatus.

Aby uzyskać inne parametry, zobacz IRowsetUpdate::GetRowStatus w dokumentacji programisty OLE DB.

IRowsetUpdateImpl::Undo

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

Składnia

STDMETHOD (Undo )(HCHAPTER /* hReserved */,
   DBCOUNTITEM cRows,
   const HROW rghRows[ ],
   DBCOUNTITEM* pcRowsUndone,
   HROW** prgRowsUndone,
   DBROWSTATUS** prgRowStatus);

Parametry

hReserved
[in] Odpowiada parametrowi hChapter w pliku IRowsetUpdate::Undo.

pcRowsUndone
[out] Odpowiada parametrowi pcRows w pliku IRowsetUpdate::Undo.

prgRowsUndone
[in] Odpowiada parametrowi prgRows w pliku IRowsetUpdate::Undo.

Aby uzyskać inne parametry, zobacz IRowsetUpdate::Undo w dokumentacji programisty OLE DB.

IRowsetUpdateImpl::Update

Przesyła wszelkie zmiany wprowadzone w wierszu od czasu ostatniego pobrania lub aktualizacji.

Składnia

STDMETHOD (Update )(HCHAPTER /* hReserved */,
   DBCOUNTITEM cRows,
   const HROW rghRows[],
   DBCOUNTITEM* pcRows,
   HROW** prgRows,
   DBROWSTATUS** prgRowStatus);

Parametry

hReserved
[in] Odpowiada parametrowi hChapter w pliku IRowsetUpdate::Update.

Aby uzyskać inne parametry, zobacz IRowsetUpdate::Update w dokumentacji programisty OLE DB.

Uwagi

Zmiany są przesyłane przez wywołanie metody IRowsetChangeImpl::FlushData. Użytkownik musi wywołać metodę CRowset::Update , aby zmiany zaczęły obowiązywać. Ustaw wartość prgRowstatus na odpowiednią wartość zgodnie z opisem w temacie Stany wierszy w dokumentacji programisty OLE DB.

IRowsetUpdateImpl::IsUpdateAllowed

Zastąpi tę metodę, aby sprawdzić zabezpieczenia, integralność itd. przed aktualizacjami.

Składnia

HRESULT IsUpdateAllowed(DBPENDINGSTATUS /* [in] */ /* status */,
   HROW /* [in] */ /* hRowUpdate */,
   DBROWSTATUS* /* [out] */ /* pRowStatus */);

Parametry

status
[in] Stan oczekujących operacji w wierszach.

hRowUpdate
[in] Obsługa wierszy, które użytkownik chce zaktualizować.

pRowStatus
[out] Stan został zwrócony użytkownikowi.

Uwagi

Jeśli ustalisz, że aktualizacja powinna być dozwolona, zwraca S_OK; w przeciwnym razie zwraca E_FAIL. Jeśli zezwolisz na aktualizację, musisz również ustawić DBROWSTATUS właściwość w pliku IRowsetUpdateImpl::Update na odpowiedni stan wiersza.

IRowsetUpdateImpl::m_mapCachedData

Mapa zawierająca oryginalne dane dla operacji odroczonej.

Składnia

CAtlMap<
   HROW hRow,
   Storage* pData
>
m_mapCachedData;

Parametry

hRow
Dojmij do wierszy dla danych.

pData
Wskaźnik do danych do buforowania. Dane są typu Storage (klasa rekordu użytkownika). Zobacz argument szablonu usługi Storage w klasie IRowsetUpdateImpl.

Zobacz też

Szablony dostawców OLE DB
Architektura szablonu dostawcy OLE DB
Tworzenie aktualizowalnego dostawcy