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 HROW
s 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