Partager via


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 :

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 DBROWSTATUSde 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