IRowsetUpdateImpl, classe
Implémentation des modèles OLE DB de l’interface IRowsetUpdate .
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>
Paramètres
T
Classe dérivée de IRowsetUpdateImpl
.
Stockage
Enregistrement utilisateur.
UpdateArray
Tableau contenant des données mises en cache pour la mise à jour de l’ensemble de lignes.
RowClass
Unité de stockage pour le HROW
.
MapClass
Unité de stockage pour tous les handles de ligne détenus par le fournisseur.
Spécifications
En-tête : atldb.h
Membres
Méthodes d’interface (utilisées avec IRowsetChange)
Nom | Description |
---|---|
SetData | Définit des valeurs de données dans une ou plusieurs colonnes. |
Méthodes d’interface (utilisées avec IRowsetUpdate)
Nom | Description |
---|---|
GetOriginalData | Obtient les données les plus récemment transmises à la source de données ou obtenues à partir de la source de données, en ignorant les modifications en attente. |
GetPendingRows | Retourne une liste de lignes avec des modifications en attente. |
GetRowStatus | Retourne l’état des lignes spécifiées. |
Annuler | Annule les modifications apportées à la ligne depuis la dernière extraction ou mise à jour. |
Update | Transmet les modifications apportées à la ligne depuis la dernière extraction ou mise à jour. |
Méthodes d’implémentation (rappel)
Nom | Description |
---|---|
IsUpdateAllowed | Utilisé pour vérifier la sécurité, l’intégrité, et ainsi de suite avant d’autoriser les mises à jour. |
Données membres
Nom | Description |
---|---|
m_mapCachedData | Contient les données d’origine de l’opération différée. |
Notes
Vous devez d’abord lire et comprendre la documentation pour IRowsetChange, car tout ce qui est décrit ici s’applique également. Vous devez également lire le chapitre 6 de la référence du programmeur OLE DB sur la définition des données.
IRowsetUpdateImpl
implémente l’interface OLE DB IRowsetUpdate
, qui permet aux consommateurs de retarder la transmission des modifications apportées IRowsetChange
à la source de données et d’annuler les modifications avant la transmission.
Important
Il est vivement recommandé de lire la documentation suivante AVANT de tenter d’implémenter votre fournisseur :
Chapitre 6 de la référence du programmeur OLE DB
Découvrez également comment la
RUpdateRowset
classe est utilisée dans l’exemple UpdatePV
IRowsetUpdateImpl::SetData
Définit des valeurs de données dans une ou plusieurs colonnes.
Syntaxe
STDMETHOD (SetData )(HROW hRow,
HACCESSOR hAccessor,
void* pSrcData);
Paramètres
Consultez IRowsetChange ::SetData dans la référence du programmeur OLE DB.
Notes
Cette méthode remplace la méthode IRowsetChangeImpl ::SetData , mais inclut la mise en cache des données d’origine pour autoriser le traitement immédiat ou différé de l’opération.
IRowsetUpdateImpl::GetOriginalData
Obtient les données les plus récemment transmises à la source de données ou obtenues à partir de la source de données, en ignorant les modifications en attente.
Syntaxe
STDMETHOD (GetOriginalData )(HROW hRow,
HACCESSOR hAccessor,
void* pData);
Paramètres
Consultez IRowsetUpdate ::GetOriginalData dans la référence du programmeur OLE DB.
IRowsetUpdateImpl::GetPendingRows
Retourne une liste de lignes avec des modifications en attente.
Syntaxe
STDMETHOD (GetPendingRows )(HCHAPTER /* hReserved */,
DBPENDINGSTATUS dwRowStatus,
DBCOUNTITEM* pcPendingRows,
HROW** prgPendingRows,
DBPENDINGSTATUS** prgPendingStatus);
Paramètres
hReserved
[in] Correspond au paramètre hChapter dans IRowsetUpdate ::GetPendingRows.
Pour d’autres paramètres, consultez IRowsetUpdate ::GetPendingRows dans la référence du programmeur OLE DB.
Notes
Pour plus d’informations, consultez IRowsetUpdate ::GetPendingRows dans la référence du programmeur OLE DB.
IRowsetUpdateImpl::GetRowStatus
Retourne l’état des lignes spécifiées.
Syntaxe
STDMETHOD (GetRowStatus )(HCHAPTER /* hReserved */,
DBCOUNTITEM cRows,
const HROW rghRows[],
DBPENDINGSTATUS rgPendingStatus[]);
Paramètres
hReserved
[in] Correspond au paramètre hChapter dans IRowsetUpdate ::GetRowStatus.
Pour d’autres paramètres, consultez IRowsetUpdate ::GetRowStatus dans la référence du programmeur OLE DB.
IRowsetUpdateImpl::Undo
Annule les modifications apportées à la ligne depuis la dernière extraction ou mise à jour.
Syntaxe
STDMETHOD (Undo )(HCHAPTER /* hReserved */,
DBCOUNTITEM cRows,
const HROW rghRows[ ],
DBCOUNTITEM* pcRowsUndone,
HROW** prgRowsUndone,
DBROWSTATUS** prgRowStatus);
Paramètres
hReserved
[in] Correspond au paramètre hChapter dans IRowsetUpdate ::Undo.
pcRowsUndone
[out] Correspond au paramètre pcRows dans IRowsetUpdate ::Undo.
prgRowsUndone
[in] Correspond au paramètre prgRows dans IRowsetUpdate ::Undo.
Pour d’autres paramètres, consultez IRowsetUpdate ::Annuler dans la référence du programmeur OLE DB.
IRowsetUpdateImpl::Update
Transmet les modifications apportées à la ligne depuis la dernière extraction ou mise à jour.
Syntaxe
STDMETHOD (Update )(HCHAPTER /* hReserved */,
DBCOUNTITEM cRows,
const HROW rghRows[],
DBCOUNTITEM* pcRows,
HROW** prgRows,
DBROWSTATUS** prgRowStatus);
Paramètres
hReserved
[in] Correspond au paramètre hChapter dans IRowsetUpdate ::Update.
Pour d’autres paramètres, consultez IRowsetUpdate ::Update dans la référence du programmeur OLE DB.
Notes
Les modifications sont transmises en appelant IRowsetChangeImpl ::FlushData. Le consommateur doit appeler CRowset ::Update pour que les modifications prennent effet. Définissez prgRowstatus sur une valeur appropriée, comme décrit dans Les états de ligne dans la référence du programmeur OLE DB.
IRowsetUpdateImpl::IsUpdateAllowed
Remplacez cette méthode pour vérifier la sécurité, l’intégrité, et ainsi de suite avant les mises à jour.
Syntaxe
HRESULT IsUpdateAllowed(DBPENDINGSTATUS /* [in] */ /* status */,
HROW /* [in] */ /* hRowUpdate */,
DBROWSTATUS* /* [out] */ /* pRowStatus */);
Paramètres
statut
[in] État des opérations en attente sur les lignes.
hRowUpdate
[in] Gérez les lignes que l’utilisateur souhaite mettre à jour.
pRowStatus
[out] État retourné à l’utilisateur.
Notes
Si vous déterminez qu’une mise à jour doit être autorisée, retourne S_OK ; retourne sinon E_FAIL. Si vous autorisez une mise à jour, vous devez également définir l’état DBROWSTATUS
de ligne approprié dans IRowsetUpdateImpl ::Update.
IRowsetUpdateImpl::m_mapCachedData
Carte contenant les données d’origine de l’opération différée.
Syntaxe
CAtlMap<
HROW hRow,
Storage* pData
>
m_mapCachedData;
Paramètres
hRow
Gérez les lignes des données.
pData
Pointeur vers les données à mettre en cache. Les données sont de type Stockage (classe d’enregistrement utilisateur). Consultez l’argument de modèle de stockage dans la classe IRowsetUpdateImpl.
Voir aussi
Modèles du fournisseur OLE DB
Architecture des modèles du fournisseur OLE DB
Création d’un fournisseur actualisable