IRowsetLocateImpl, classe
Implémente l’interface OLE DB IRowsetLocate , qui extrait des lignes arbitraires à partir d’un ensemble de lignes.
Syntaxe
template <
class T,
class RowsetInterface,
class RowClass = CSimpleRow,
class MapClass = CAtlMap < RowClass::KeyType, RowClass* >,
class BookmarkKeyType = LONG,
class BookmarkType = LONG,
class BookmarkMapClass = CAtlMap < RowClass::KeyType, RowClass* >>
class ATL_NO_VTABLE IRowsetLocateImpl : public IRowsetImpl<
T,
RowsetInterface,
RowClass,
MapClass>
Paramètres
T
Classe dérivée de IRowsetLocateImpl
.
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.
BookmarkKeyType
Type du signet, tel qu’un long ou une chaîne. Les signets ordinaires doivent avoir une longueur d’au moins deux octets. (La longueur d’un octet est réservée aux signetsDBBMK_FIRST
standard OLE DB, DBBMK_LAST
et DBBMK_INVALID
.)
BookmarkType
Mécanisme de mappage pour la gestion des relations entre signets et données.
BookmarkMapClass
Unité de stockage pour tous les handles de ligne détenus par le signet.
Spécifications
En-tête : atldb.h
Membres
Méthodes d'interface
Nom | Description |
---|---|
Compare | Compare deux signets. |
GetRowsAt | Récupère les lignes commençant par la ligne spécifiée par un décalage d’un signet. |
GetRowsByBookmark | Récupère les lignes qui correspondent aux signets spécifiés. |
Hash | Retourne des valeurs de hachage pour les signets spécifiés. |
Données membres
Nom | Description |
---|---|
m_rgBookmarks | Tableau de signets. |
Notes
IRowsetLocateImpl
est l’implémentation de modèles OLE DB de l’interface IRowsetLocate . IRowsetLocate
est utilisé pour extraire des lignes arbitraires à partir d’un ensemble de lignes. Un ensemble de lignes qui n’implémente pas cette interface est un sequential
ensemble de lignes. Lorsqu’elle IRowsetLocate
est présente sur un ensemble de lignes, la colonne 0 est le signet des lignes. La lecture de cette colonne obtient une valeur de signet qui peut être utilisée pour se repositionner sur la même ligne.
IRowsetLocateImpl
est utilisé pour implémenter la prise en charge des signets dans les fournisseurs. Les signets sont des espaces réservés (index sur un ensemble de lignes) qui permettent au consommateur de revenir rapidement à une ligne, ce qui permet un accès à haute vitesse aux données. Le fournisseur détermine quels signets peuvent identifier de manière unique une ligne. À l’aide IRowsetLocateImpl
de méthodes, vous pouvez comparer des signets, extraire des lignes par décalage, extraire des lignes par signet et retourner des valeurs de hachage pour les signets.
Pour prendre en charge les signets OLE DB dans un ensemble de lignes, faites en sorte que l’ensemble de lignes hérite de cette classe.
Pour plus d’informations sur l’implémentation de la prise en charge des signets, consultez La prise en charge du fournisseur pour les signets dans le Guide et les signets du programmeur Visual C++ dans la référence du programmeur OLE DB dans le Kit de développement logiciel (SDK) de plateforme.
IRowsetLocateImpl::Compare
Compare deux signets.
Syntaxe
STDMETHOD (Compare )(HCHAPTER /* hReserved */,
DBBKMARK cbBookmark1,
const BYTE* pBookmark1,
DBBKMARK cbBookmark2,
const BYTE* pBookmark2,
DBCOMPARE* pComparison);
Paramètres
Consultez IRowsetLocate ::Compare dans la référence du programmeur OLE DB.
Notes
L’un des signets peut être un signet standard défini par OLE DB (DBBMK_FIRST
, DBBMK_LAST
ou DBBMK_INVALID
). La valeur retournée indique pComparison
la relation entre les deux signets :
DBCOMPARE_LT (
cbBookmark1
est avantcbBookmark2
.)DBCOMPARE_EQ (
cbBookmark1
est égal àcbBookmark2
.)DBCOMPARE_GT (
cbBookmark1
est aprèscbBookmark2
.)DBCOMPARE_NE (les signets sont égaux et non ordonnés.)
DBCOMPARE_NOTCOMPARABLE (les signets ne peuvent pas être comparés.)
IRowsetLocateImpl::GetRowsAt
Récupère les lignes commençant par la ligne spécifiée par un décalage d’un signet.
Syntaxe
STDMETHOD (GetRowsAt )(HWATCHREGION /* hReserved1 */,
HCHAPTER hReserved2,
DBBKMARK cbBookmark,
const BYTE* pBookmark,
DBROWOFFSET lRowsOffset,
DBROWCOUNT cRows,
DBCOUNTITEM* pcRowsObtained,
HROW** prghRows);
Paramètres
Consultez IRowsetLocate ::GetRowsAt dans la référence du programmeur OLE DB.
Notes
Pour extraire à la place la position du curseur, utilisez IRowset ::GetRowsAt.
IRowsetLocateImpl::GetRowsAt
ne modifie pas la position du curseur.
IRowsetLocateImpl::GetRowsByBookmark
Récupère une ou plusieurs lignes qui correspondent aux signets spécifiés.
Syntaxe
STDMETHOD (GetRowsByBookmark )(HCHAPTER /* hReserved */,
DBCOUNTITEM cRows,
const DBBKMARK rgcbBookmarks[],
const BYTE* rgpBookmarks,
HROW rghRows[],
DBROWSTATUS* rgRowStatus[]);
Paramètres
hReserved
[in] Correspond au paramètre hChapter à IRowsetLocate ::GetRowsByBookmark.
Pour d’autres paramètres, consultez IRowsetLocate ::GetRowsByBookmark dans la référence du programmeur OLE DB.
Notes
Le signet peut être une valeur que vous définissez ou un signet standard OLE DB (DBBMK_FIRST
ou DBBMK_LAST
). Ne modifie pas la position du curseur.
IRowsetLocateImpl::Hash
Retourne des valeurs de hachage pour les signets spécifiés.
Syntaxe
STDMETHOD (Hash )(HCHAPTER /* hReserved */,
DBBKMARK cbBookmarks,
const DBBKMARK* rgcbBookmarks[],
const BYTE* rgpBookmarks[],
DBHASHVALUE rgHashValues[],
DBROWSTATUS rgBookmarkStatus[]);
Paramètres
hReserved
[in] Correspond au paramètre hChapter à IRowsetLocate ::Hash.
Pour d’autres paramètres, consultez IRowsetLocate ::Hash dans la référence du programmeur OLE DB.
IRowsetLocateImpl::m_rgBookmarks
Tableau de signets.
Syntaxe
CAtlArray<DBROWCOUNT> m_rgBookmarks;
Voir aussi
Modèles du fournisseur OLE DB
Architecture des modèles du fournisseur OLE DB
Prise en charge du fournisseur IRowsetLocate :IRowsetpour les signets
Signets