Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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:
Rozdział 6 dokumentacji programisty OLE DB
Zobacz również, jak
RUpdateRowsetklasa jest używana w przykładzie UpdatePV
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