Sdílet prostřednictvím


IRowsetUpdateImpl – třída

Ole DB Templates implementace IRowsetUpdate rozhraní.

Syntaxe

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
Třída odvozená z IRowsetUpdateImpl.

Úložiště
Záznam uživatele.

UpdateArray
Pole obsahující data uložená v mezipaměti pro aktualizaci sady řádků.

RowClass
Jednotka úložiště pro jednotku HROW.

MapClass
Jednotka úložiště pro všechny popisovače řádků uchovávané poskytovatelem.

Požadavky

Hlavička: atldb.h

Členové

Metody rozhraní (používá se s IRowsetChange)

Název Popis
SetData Nastaví hodnoty dat v jednom nebo více sloupcích.

Metody rozhraní (používá se s IRowsetUpdate)

Název Popis
GetOriginalData Získá data naposledy přenášená nebo získaná ze zdroje dat a ignoruje čekající změny.
GetPendingRows Vrátí seznam řádků s čekajícími změnami.
GetRowStatus Vrátí stav zadaných řádků.
Odčinit Vrátí zpět všechny změny řádku od posledního načtení nebo aktualizace.
Aktualizace Přenáší všechny změny provedené v řádku od posledního načtení nebo aktualizace.

Metody implementace (zpětné volání)

Název Popis
IsUpdateAllowed Používá se ke kontrole zabezpečení, integrity atd. před povolením aktualizací.

Datové členy

Název Popis
m_mapCachedData Obsahuje původní data pro odloženou operaci.

Poznámky

Nejprve byste si měli přečíst dokumentaci pro IRowsetChange a porozumět jí, protože tady platí také všechno, co je zde popsáno. Měli byste si také přečíst kapitolu 6 odkazu programátora OLE DB na nastavení dat.

IRowsetUpdateImpl implementuje rozhraní OLE DB IRowsetUpdate , které uživatelům umožňuje pozdržet přenos změn provedených IRowsetChange ve zdroji dat a vrátit zpět změny před přenosem.

Důležité

Před pokusem o implementaci poskytovatele důrazně doporučujeme přečíst si následující dokumentaci:

IRowsetUpdateImpl::SetData

Nastaví hodnoty dat v jednom nebo více sloupcích.

Syntaxe

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

Parametry

Viz IRowsetChange::SetData v odkazech programátora OLE DB.

Poznámky

Tato metoda přepíše IRowsetChangeImpl::SetData metoda, ale zahrnuje ukládání původních dat do mezipaměti, aby bylo povoleno okamžité nebo odložené zpracování operace.

IRowsetUpdateImpl::GetOriginalData

Získá data naposledy přenášená nebo získaná ze zdroje dat a ignoruje čekající změny.

Syntaxe

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

Parametry

Viz IRowsetUpdate::GetOriginalData v odkazech programátorů OLE DB.

IRowsetUpdateImpl::GetPendingRows

Vrátí seznam řádků s čekajícími změnami.

Syntaxe

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

Parametry

hReserved
[v] Odpovídá parametru hChapter v IRowsetUpdate::GetPendingRows.

Další parametry naleznete v tématu IRowsetUpdate::GetPendingRows v odkazech programátora OLE DB.

Poznámky

Další informace naleznete v tématu IRowsetUpdate::GetPendingRows v odkazech programátora OLE DB.

IRowsetUpdateImpl::GetRowStatus

Vrátí stav zadaných řádků.

Syntaxe

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

Parametry

hReserved
[v] Odpovídá parametru hChapter v IRowsetUpdate::GetRowStatus.

Další parametry naleznete v tématu IRowsetUpdate::GetRowStatus v odkazech programátora OLE DB.

IRowsetUpdateImpl::Undo

Vrátí zpět všechny změny řádku od posledního načtení nebo aktualizace.

Syntaxe

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

Parametry

hReserved
[v] Odpovídá parametru hChapter v IRowsetUpdate::Undo.

pcRowsUndone
[ven] Odpovídá parametru pcRows v IRowsetUpdate::Undo.

prgRowsUndone
[v] Odpovídá parametru prgRows v IRowsetUpdate::Undo.

Další parametry naleznete v části IRowsetUpdate::Undo v odkazech programátora OLE DB.

IRowsetUpdateImpl::Update

Přenáší všechny změny provedené v řádku od posledního načtení nebo aktualizace.

Syntaxe

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

Parametry

hReserved
[v] Odpovídá parametru hChapter v IRowsetUpdate::Update.

Další parametry naleznete v části IRowsetUpdate::Update v odkazech programátora OLE DB.

Poznámky

Změny se přenášejí voláním IRowsetChangeImpl::FlushData. Příjemce musí zavolat CRowset::Update , aby se změny projevily. Nastavte prgRowstatus na odpovídající hodnotu, jak je popsáno ve stavech řádků v odkazech programátora OLE DB.

IRowsetUpdateImpl::IsUpdateAllowed

Přepište tuto metodu, abyste před aktualizacemi zkontrolovali zabezpečení, integritu atd.

Syntaxe

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

Parametry

status
[v] Stav čekajících operací na řádcích

hRowUpdate
[v] Popisovač řádků, které chce uživatel aktualizovat.

pRowStatus
[ven] Stav vrácený uživateli.

Poznámky

Pokud zjistíte, že by aktualizace měla být povolena, vrátí S_OK; v opačném případě vrátí E_FAIL. Pokud povolíte aktualizaci, musíte také nastavit DBROWSTATUS v IRowsetUpdateImpl::Update na odpovídající stav řádku.

IRowsetUpdateImpl::m_mapCachedData

Mapa obsahující původní data pro odloženou operaci.

Syntaxe

CAtlMap<
   HROW hRow,
   Storage* pData
>
m_mapCachedData;

Parametry

hRow
Umožňuje zpracovat řádky dat.

pData
Ukazatel na data, která se mají ukládat do mezipaměti. Data jsou typu Storage (třída záznamu uživatele). Viz argument šablony úložiště ve třídě IRowsetUpdateImpl.

Viz také

Šablony zprostředkovatele OLE DB
Architektura šablon zprostředkovatele OLE DB
Vytvoření aktualizovatelného zprostředkovatele