IRowsetUpdateImpl-Klasse
Die OLE DB-Vorlagenimplementierung der IRowsetUpdate-Schnittstelle .
Syntax
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>
Parameter
T
Eine von IRowsetUpdateImpl
.
Storage
Der Benutzerdatensatz.
UpdateArray
Ein Array, das zwischengespeicherte Daten zum Aktualisieren des Rowsets enthält.
RowClass
Die Speichereinheit für die HROW
.
MapClass
Die Speichereinheit für alle Zeilenhandles, die vom Anbieter gehalten werden.
Anforderungen
Header: „atldb.h“
Member
Schnittstellenmethoden (verwendet mit IRowsetChange)
Name | Beschreibung |
---|---|
SetData | Legt Datenwerte in einer oder mehreren Spalten fest. |
Schnittstellenmethoden (verwendet mit IRowsetUpdate)
Name | Beschreibung |
---|---|
GetOriginalData | Ruft die Daten ab, die zuletzt an die Datenquelle übermittelt oder abgerufen wurden, wobei ausstehende Änderungen ignoriert werden. |
GetPendingRows | Gibt eine Liste von Zeilen mit ausstehenden Änderungen zurück. |
GetRowStatus | Gibt den Status der angegebenen Zeilen zurück. |
Rückgängig | Rückgängig machen alle Änderungen an der Zeile seit dem letzten Abrufen oder Aktualisieren. |
Aktualisieren | Überträgt alle Änderungen, die seit dem letzten Abruf oder Update an der Zeile vorgenommen wurden. |
Implementierungsmethoden (Callback)
Name | Beschreibung |
---|---|
IsUpdateAllowed | Wird verwendet, um auf Sicherheit, Integrität usw. zu überprüfen, bevor Updates zugelassen werden. |
Datenelemente
Name | Beschreibung |
---|---|
m_mapCachedData | Enthält die ursprünglichen Daten für den verzögerten Vorgang. |
Hinweise
Sie sollten zuerst die Dokumentation für IRowsetChange lesen und verstehen, da hier auch alles beschriebene gilt. Außerdem sollten Sie Kapitel 6 der OLE DB-Programmierreferenz zum Festlegen von Daten lesen.
IRowsetUpdateImpl
implementiert die OLE DB-Schnittstelle IRowsetUpdate
, mit der Verbraucher die Übertragung von Änderungen verzögern können, die an IRowsetChange
der Datenquelle vorgenommen wurden, und Änderungen vor der Übertragung rückgängig machen.
Wichtig
Es wird dringend empfohlen, die folgende Dokumentation zu lesen, BEVOR Sie versuchen, Ihren Anbieter zu implementieren:
Kapitel 6 der OLE DB-Programmierreferenz
Sehen Sie sich auch an, wie die
RUpdateRowset
Klasse im UpdatePV-Beispiel verwendet wird
IRowsetUpdateImpl::SetData
Legt Datenwerte in einer oder mehreren Spalten fest.
Syntax
STDMETHOD (SetData )(HROW hRow,
HACCESSOR hAccessor,
void* pSrcData);
Parameter
Siehe "IRowsetChange::SetData " in der OLE DB-Programmierreferenz.
Hinweise
Diese Methode setzt die IRowsetChangeImpl::SetData-Methode außer Kraft, schließt aber das Zwischenspeichern von ursprünglichen Daten ein, um die sofortige oder verzögerte Verarbeitung des Vorgangs zu ermöglichen.
IRowsetUpdateImpl::GetOriginalData
Ruft die Daten ab, die zuletzt an die Datenquelle übermittelt oder abgerufen wurden, wobei ausstehende Änderungen ignoriert werden.
Syntax
STDMETHOD (GetOriginalData )(HROW hRow,
HACCESSOR hAccessor,
void* pData);
Parameter
Siehe "IRowsetUpdate::GetOriginalData " in der OLE DB-Programmierreferenz.
IRowsetUpdateImpl::GetPendingRows
Gibt eine Liste von Zeilen mit ausstehenden Änderungen zurück.
Syntax
STDMETHOD (GetPendingRows )(HCHAPTER /* hReserved */,
DBPENDINGSTATUS dwRowStatus,
DBCOUNTITEM* pcPendingRows,
HROW** prgPendingRows,
DBPENDINGSTATUS** prgPendingStatus);
Parameter
hReserved
[in] Entspricht dem hChapter-Parameter in IRowsetUpdate::GetPendingRows.
Weitere Parameter finden Sie unter "IRowsetUpdate::GetPendingRows " in der OLE DB-Programmierreferenz.
Hinweise
Weitere Informationen finden Sie unter "IRowsetUpdate::GetPendingRows " in der OLE DB-Programmierreferenz.
IRowsetUpdateImpl::GetRowStatus
Gibt den Status der angegebenen Zeilen zurück.
Syntax
STDMETHOD (GetRowStatus )(HCHAPTER /* hReserved */,
DBCOUNTITEM cRows,
const HROW rghRows[],
DBPENDINGSTATUS rgPendingStatus[]);
Parameter
hReserved
[in] Entspricht dem hChapter-Parameter in IRowsetUpdate::GetRowStatus.
Weitere Parameter finden Sie unter "IRowsetUpdate::GetRowStatus " in der OLE DB-Programmierreferenz.
IRowsetUpdateImpl::Undo
Rückgängig machen alle Änderungen an der Zeile seit dem letzten Abrufen oder Aktualisieren.
Syntax
STDMETHOD (Undo )(HCHAPTER /* hReserved */,
DBCOUNTITEM cRows,
const HROW rghRows[ ],
DBCOUNTITEM* pcRowsUndone,
HROW** prgRowsUndone,
DBROWSTATUS** prgRowStatus);
Parameter
hReserved
[in] Entspricht dem hChapter-Parameter in IRowsetUpdate::Undo.
pcRowsUndone
[out] Entspricht dem parameter "pcRows " in "IRowsetUpdate::Undo".
prgRowsUndone
[in] Entspricht dem Parameter "prgRows " in "IRowsetUpdate::Undo".
Weitere Parameter finden Sie unter "IRowsetUpdate::Undo " in der OLE DB-Programmierreferenz.
IRowsetUpdateImpl::Update
Überträgt alle Änderungen, die seit dem letzten Abruf oder Update an der Zeile vorgenommen wurden.
Syntax
STDMETHOD (Update )(HCHAPTER /* hReserved */,
DBCOUNTITEM cRows,
const HROW rghRows[],
DBCOUNTITEM* pcRows,
HROW** prgRows,
DBROWSTATUS** prgRowStatus);
Parameter
hReserved
[in] Entspricht dem hChapter-Parameter in IRowsetUpdate::Update.
Weitere Parameter finden Sie unter "IRowsetUpdate::Update " in der OLE DB-Programmierreferenz.
Hinweise
Änderungen werden durch Aufrufen von IRowsetChangeImpl::FlushData übertragen. Der Consumer muss CRowset::Update aufrufen, damit die Änderungen wirksam werden. Legen Sie prgRowstatus auf einen geeigneten Wert fest, wie in Zeilenzuständen in der OLE DB-Programmierreferenz beschrieben.
IRowsetUpdateImpl::IsUpdateAllowed
Überschreiben Sie diese Methode, um vor Updates auf Sicherheit, Integrität usw. zu überprüfen.
Syntax
HRESULT IsUpdateAllowed(DBPENDINGSTATUS /* [in] */ /* status */,
HROW /* [in] */ /* hRowUpdate */,
DBROWSTATUS* /* [out] */ /* pRowStatus */);
Parameter
status
[in] Der Status der ausstehenden Vorgänge in den Zeilen.
hRowUpdate
[in] Behandeln Sie die Zeilen, die der Benutzer aktualisieren möchte.
pRowStatus
[out] Der Status, der an den Benutzer zurückgegeben wurde.
Hinweise
Wenn Sie feststellen, dass ein Update zulässig sein soll, wird S_OK zurückgegeben; andernfalls wird E_FAIL zurückgegeben. Wenn Sie ein Update zulassen, müssen Sie auch das DBROWSTATUS
In IRowsetUpdateImpl::Update auf einen entsprechenden Zeilenstatus festlegen.
IRowsetUpdateImpl::m_mapCachedData
Eine Zuordnung, die die ursprünglichen Daten für den verzögerten Vorgang enthält.
Syntax
CAtlMap<
HROW hRow,
Storage* pData
>
m_mapCachedData;
Parameter
hRow
Behandeln Sie die Zeilen für die Daten.
pData
Ein Zeiger auf die Daten, die zwischengespeichert werden sollen. Die Daten sind vom Typ " Storage " (die Benutzerdatensatzklasse). Siehe das Argument "Storage-Vorlage " in der IRowsetUpdateImpl-Klasse.
Siehe auch
OLE DB-Anbietervorlagen
Architektur von OLE DB-Anbietervorlagen
Erstellen eines aktualisierbaren Anbieters