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:
Kapitola 6 odkazu programátora OLE DB
Podívejte se také, jak
RUpdateRowset
se třída používá v ukázce UpdatePV .
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