Partager via


IRowsetImpl, classe

Fournit une implémentation de l’interface IRowset.

Syntaxe

template <
   class T,
   class RowsetInterface,
   class RowClass = CSimpleRow,
   class MapClass = CAtlMap <
      RowClass::KeyType,
      RowClass*>>
class ATL_NO_VTABLE IRowsetImpl : public RowsetInterface

Paramètres

T
Votre classe, dérivée de IRowsetImpl.

RowsetInterface
Classe dérivée de IRowsetImpl.

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

Nom Description
AddRefRows Ajoute un nombre de références à un handle de ligne existant.
CreateRow Appelé par GetNextRows pour allouer un nouveau HROW. Non appelé directement par l’utilisateur.
GetData Récupère les données de la copie de l’ensemble de lignes de la ligne.
GetDBStatus Retourne l’état du champ spécifié.
GetNextRows Récupère les lignes de manière séquentielle, en mémorisant la position précédente.
IRowsetImpl Constructeur . Non appelé directement par l’utilisateur.
RefRows Appelé par AddRefRows et ReleaseRows. Non appelé directement par l’utilisateur.
ReleaseRows Libère les lignes.
RestartPosition Repositionne la position de récupération suivante à sa position initiale ; c’est-à-dire sa position lors de la création de l’ensemble de lignes.
SetDBStatus Définit les indicateurs d’état pour le champ spécifié.

Données membres

Nom Description
m_bCanFetchBack Indique si un fournisseur prend en charge la récupération descendante.
m_bCanScrollBack Indique si un fournisseur peut faire défiler le curseur vers l’arrière.
m_bReset Indique si un fournisseur a réinitialisé sa position de curseur. Cela a une signification particulière lors du défilement vers l’arrière ou de la récupération vers l’arrière dans GetNextRows.
m_iRowset Index de l’ensemble de lignes représentant le curseur.
m_rgRowHandles Liste des handles de ligne.

Notes

IRowset est l’interface d’ensemble de lignes de base.

IRowsetImpl::AddRefRows

Ajoute un nombre de références à un handle de ligne existant.

Syntaxe

STDMETHOD(AddRefRows )(DBCOUNTITEM cRows,
   const HROW rghRows[],
   DBREFCOUNT rgRefCounts[],
   DBROWSTATUS rgRowStatus[]);

Paramètres

Consultez IRowset ::AddRefRows dans la référence du programmeur OLE DB.

IRowsetImpl::CreateRow

Méthode d’assistance appelée par GetNextRows pour allouer un nouveau HROW.

Syntaxe

HRESULT CreateRow(DBROWOFFSET lRowsOffset,
   DBCOUNTITEM& cRowsObtained,
   HROW* rgRows);

Paramètres

lRowsOffset
Position du curseur de la ligne en cours de création.

cRowsObtained
Référence passée à l’utilisateur indiquant le nombre de lignes créées.

rgRows
Tableau de HROWs retourné à l’appelant avec les handles de ligne nouvellement créés.

Notes

Si la ligne existe, cette méthode appelle AddRefRows et retourne. Sinon, il alloue une nouvelle instance de la variable de modèle RowClass et l’ajoute à m_rgRowHandles.

IRowsetImpl::GetData

Récupère les données de la copie de l’ensemble de lignes de la ligne.

Syntaxe

STDMETHOD(GetData )(HROW hRow,
   HACCESSOR hAccessor,
   void* pDstData);

Paramètres

Consultez IRowset ::GetData dans la référence du programmeur OLE DB.

Certains paramètres correspondent aux paramètres de référence du programmeur OLE DB de différents noms, qui sont décrits dans IRowset::GetData:

Paramètres du modèle OLE DB Paramètres de référence du programmeur OLE DB
pDstData pData

Notes

Gère également la conversion de données à l’aide de la DLL de conversion de données OLE DB.

IRowsetImpl::GetDBStatus

Retourne les indicateurs d’état DBSTATUS pour le champ spécifié.

Syntaxe

virtual DBSTATUS GetDBStatus(RowClass* currentRow,
   ATLCOLUMNINFO* columnNames);

Paramètres

currentRow
[in] Ligne active.

columnNames
[in] Colonne pour laquelle l’état est demandé.

Valeur de retour

Indicateurs DBSTATUS pour la colonne.

IRowsetImpl::GetNextRows

Récupère les lignes de manière séquentielle, en mémorisant la position précédente.

Syntaxe

STDMETHOD(GetNextRows )(HCHAPTER hReserved,
   DBROWOFFSET lRowsOffset,
   DBROWCOUNT cRows,
   DBCOUNTITEM* pcRowsObtained,
   HROW** prghRows);

Paramètres

Consultez IRowset ::GetNextRows dans la référence du programmeur OLE DB.

IRowsetImpl::IRowsetImpl

Constructeur .

Syntaxe

IRowsetImpl();

Notes

Vous n’avez généralement pas besoin d’appeler cette méthode directement.

IRowsetImpl::RefRows

Appelé par AddRefRows et ReleaseRows pour incrémenter ou libérer un nombre de références vers un handle de ligne existant.

Syntaxe

HRESULT RefRows(DBCOUNTITEM cRows,
   const HROWrghRows[],
   DBREFCOUNT rgRefCounts[],
   DBROWSTATUS rgRowStatus[],
   BOOL bAdd);

Paramètres

Consultez IRowset ::AddRefRows dans la référence du programmeur OLE DB.

Valeur de retour

Valeur HRESULT standard.

IRowsetImpl::ReleaseRows

Libère les lignes.

Syntaxe

STDMETHOD(ReleaseRows )(DBCOUNTITEM cRows,
   const HROW rghRows[],
   DBROWOPTIONS rgRowOptions[],
   DBREFCOUNT rgRefCounts[],
   DBROWSTATUS rgRowStatus[]);

Paramètres

Consultez IRowset ::ReleaseRows dans la référence du programmeur OLE DB.

IRowsetImpl::RestartPosition

Repositionne la position de récupération suivante à sa position initiale ; c’est-à-dire sa position lors de la création de l’ensemble de lignes.

Syntaxe

STDMETHOD(RestartPosition )(HCHAPTER /* hReserved */);

Paramètres

Consultez IRowset ::RestartPosition dans la référence du programmeur OLE DB.

Notes

La position de l’ensemble de lignes n’est pas définie jusqu’à ce qu’elle GetNextRow soit appelée. Vous pouvez revenir en arrière dans un ensemble de lignes en appelant RestartPosition , puis en récupérant ou en faisant défiler vers l’arrière.

IRowsetImpl::SetDBStatus

Définit les indicateurs d’état DBSTATUS pour le champ spécifié.

Syntaxe

virtual HRESULT SetDBStatus(DBSTATUS* statusFlags,
   RowClass* currentRow,
   ATLCOLUMNINFO* columnInfo);

Paramètres

statusFlags
Indicateurs DBSTATUS à définir pour la colonne.

currentRow
La ligne actuelle.

columnInfo
Colonne pour laquelle l’état est défini.

Valeur de retour

Valeur HRESULT standard.

Notes

Le fournisseur remplace cette fonction pour fournir un traitement spécial pour DBSTATUS_S_ISNULL et DBSTATUS_S_DEFAULT.

IRowsetImpl::m_bCanFetchBack

Indique si un fournisseur prend en charge la récupération descendante.

Syntaxe

unsigned m_bCanFetchBack:1;

Notes

Lié à la DBPROP_CANFETCHBACKWARDS propriété dans le DBPROPSET_ROWSET groupe. Le fournisseur doit prendre en charge DBPROP_CANFETCHBACKWARDS m_bCanFetchBackwards l’état true.

IRowsetImpl::m_bCanScrollBack

Indique si un fournisseur peut faire défiler le curseur vers l’arrière.

Syntaxe

unsigned  m_bCanScrollBack:1;

Notes

Lié à la DBPROP_CANSCROLLBACKWARDS propriété dans le DBPROPSET_ROWSET groupe. Le fournisseur doit prendre en charge DBPROP_CANSCROLLBACKWARDS m_bCanFetchBackwards l’état true.

IRowsetImpl::m_bReset

Indicateur de bits utilisé pour déterminer si la position du curseur est définie sur l’ensemble de lignes.

Syntaxe

unsigned m_bReset:1;

Notes

Si le consommateur appelle GetNextRows avec une valeur négative lOffset ou cRows et m_bReset est vrai, GetNextRows passe à la fin de l’ensemble de lignes. Si m_bReset la valeur est false, le consommateur reçoit un code d’erreur, conformément à la spécification OLE DB. L’indicateur m_bReset est défini true lorsque l’ensemble de lignes est créé pour la première fois et lorsque le consommateur appelle IRowsetImpl ::RestartPosition. Elle est définie false quand vous appelez GetNextRows.

IRowsetImpl::m_iRowset

Index de l’ensemble de lignes représentant le curseur.

Syntaxe

DBROWOFFSET m_iRowset;

IRowsetImpl::m_rgRowHandles

Carte des handles de ligne actuellement contenus par le fournisseur en réponse à GetNextRows.

Syntaxe

MapClass m_rgRowHandles;

Notes

Les handles de ligne sont supprimés en appelant ReleaseRows. Consultez la vue d’ensemble de IRowsetImpl pour la définition de MapClass.

Voir aussi

Modèles du fournisseur OLE DB
Architecture des modèles du fournisseur OLE DB
CSimpleRow, classe