Partager via


CCustomRowset (CustomRS.H)

L’Assistant génère une entrée pour l’objet d’ensemble de lignes. Dans ce cas, il est appelé CCustomRowset. La CCustomRowset classe hérite d’une classe de fournisseur OLE DB appelée CRowsetImpl, qui implémente toutes les interfaces nécessaires pour l’objet d’ensemble de lignes. Le code suivant montre la chaîne d’héritage pour CRowsetImpl:

template <class T, class Storage, class CreatorClass,
   class ArrayType = CAtlArray<Storage>>
class CMyRowsetImpl:
   public CRowsetImpl<T, Storage, CreatorClass, ArrayType,
      CSimpleRow, IRowsetLocateImpl< T >>

CRowsetImplutilise également les interfaces et IColumnsInfo les IAccessor interfaces. Il utilise ces interfaces pour les champs de sortie dans les tables. La classe fournit également une implémentation pour IRowsetIdentity, ce qui permet au consommateur de déterminer si deux lignes sont identiques. L’interface IRowsetInfo implémente les propriétés de l’objet d’ensemble de lignes. L’interface IConvertType permet au fournisseur de résoudre les différences entre les types de données demandés par le consommateur et ceux utilisés par le fournisseur.

L’interface IRowset gère réellement la récupération des données. Le consommateur appelle d’abord une méthode appelée GetNextRows pour retourner un handle à une ligne, appelée HROW. Le consommateur appelle IRowset::GetData ensuite avec celui-ci HROW pour récupérer les données demandées.

CRowsetImpl prend également plusieurs paramètres de modèle. Ces paramètres vous permettent de déterminer comment la CRowsetImpl classe gère les données. L’argument ArrayType vous permet de déterminer le mécanisme de stockage utilisé pour stocker les données de ligne. Le paramètre RowClass spécifie la classe qui contient un HROW.

Le paramètre RowsetInterface vous permet également d’utiliser l’interface ou IRowsetScroll l’interfaceIRowsetLocate. Les IRowsetLocate interfaces et IRowsetScroll les deux héritent de IRowset. Par conséquent, les modèles de fournisseur OLE DB doivent fournir une gestion spéciale pour ces interfaces. Si vous souhaitez utiliser l’une de ces interfaces, vous devez utiliser ce paramètre.

Voir aussi

Fichiers générés par l’Assistant Fournisseur