Référence des modèles du fournisseur OLE DB
Les classes et interfaces des modèles de fournisseur OLE DB peuvent être regroupées dans les catégories suivantes. Le matériel de référence inclut également des informations sur les macros pour les modèles de fournisseur OLE DB.
Les classes utilisent la convention d’affectation de noms suivante : une classe nommée avec le modèle IWidgetImpl
fournit une implémentation de l’interface IWidget
.
Session Classes
IDBCreateSessionImpl
Crée une session à partir de l’objet source de données et retourne l’interface demandée sur la session nouvellement créée. Interface obligatoire sur les objets de source de données.
ISessionPropertiesImpl
Implémente les propriétés de session en appelant une fonction statique définie par le mappage du jeu de propriétés. Le mappage du jeu de propriétés doit être spécifié dans votre classe de session. Interface obligatoire sur les sessions.
Classes d’ensemble de lignes
Fournit une implémentation d’ensemble de lignes OLE DB standard sans nécessiter l’héritage multiple de nombreuses interfaces d’implémentation. La seule méthode pour laquelle vous devez fournir l’implémentation est Execute
.
CSimpleRow
Fournit une implémentation par défaut pour le handle de ligne, qui est utilisé dans la IRowsetImpl
classe. Un handle de ligne est logiquement une balise unique pour une ligne de résultat. IRowsetImpl
crée une nouvelle CSimpleRow
ligne demandée dans IRowsetImpl::GetNextRows
.
IAccessorImpl
OLE DB nécessite que les fournisseurs implémentent HACCESSOR
une balise à un tableau de DBBINDING
structures. Fournit HACCESSOR
des adresses des BindType
structures. Obligatoire sur les ensembles de lignes et les commandes.
IColumnsInfoImpl
Délégués à une fonction statique définie par le mappage de colonnes du fournisseur. Interface obligatoire sur les ensembles de lignes et les commandes.
IConvertTypeImpl
Fournit des informations sur la disponibilité des conversions de types sur une commande ou sur un ensemble de lignes. Obligatoire sur les commandes, les ensembles de lignes et les ensembles de lignes d’index. Implémente l’interface IConvertType
en déléguant l’objet de conversion fourni par OLE DB.
IDBSchemaRowsetImpl
Implémente l’interface IDBSchemaRowset
et la fonction CreateSchemaRowset
de créateur templatée.
IOpenRowsetImpl
Ouvre et retourne un ensemble de lignes qui inclut toutes les lignes d’une table ou d’un index de base unique. Interface obligatoire pour un objet de session.
IRowsetChangeImpl
Implémente l’interface OLE DB IRowsetChange , qui permet la mise à jour des valeurs des colonnes dans les lignes existantes, la suppression de lignes et l’insertion de nouvelles lignes.
IRowsetCreatorImpl
Cette classe hérite de IObjectWithSite et remplace IObjectWithSite ::SetSite. IRowsetCreatorImpl
effectue les mêmes fonctions que celles qui IObjectWithSite
permettent également les propriétés DBPROPCANSCROLLBACKWARDS
OLE DB et DBPROPCANFETCHBACKWARDS
.
IRowsetIdentityImpl
Implémente l’interface IRowsetIdentity
, ce qui vous permet de comparer si deux lignes de données sont identiques ou non.
IRowsetImpl
Fournit une implémentation de l’interface IRowset
, qui est l’interface d’ensemble de lignes de base.
IRowsetInfoImpl
Implémente les propriétés de l’ensemble de lignes à l’aide du mappage du jeu de propriétés défini dans votre classe de commandes. Interface obligatoire sur les ensembles de lignes.
IRowsetLocateImpl
Implémente l’interface OLE DB IRowsetLocate , qui extrait des lignes arbitraires à partir d’un ensemble de lignes. 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.
IRowsetNotifyCP
Implémente des fonctions de diffusion pour conseiller les écouteurs sur le point IID_IRowsetNotify
de connexion des modifications apportées au contenu de l’ensemble de lignes. Les consommateurs qui gèrent les notifications implémentent IRowsetNotify et l’inscrivent sur ce point de connexion.
IRowsetUpdateImpl
Implémente l’interface OLE DB IRowsetUpdate , qui permet aux consommateurs de retarder la transmission des modifications apportées avec IRowsetChange à la source de données et annuler les modifications avant la transmission.
Classes de commandes
ICommandImpl
Fournit une implémentation de l’interface ICommand
. Cette interface n’est pas visible, mais elle est gérée par ICommandTextImpl
. Interface obligatoire sur l’objet de commande.
ICommandPropertiesImpl
Cette implémentation de l’interface ICommandProperties
est fournie par une fonction statique définie par la BEGIN_PROPSET_MAP
macro. Obligatoire sur les commandes.
ICommandTextImpl
Définit, stocke et retourne le texte de la commande. Obligatoire sur les commandes.
IDBCreateCommandImpl
Crée une commande à partir de l’objet de session et retourne l’interface demandée sur la commande nouvellement créée. Interface facultative sur les objets de session.
D’autres classes de commandes sont IColumnsInfoImpl
et IAccessorImpl
, décrites dans la section Classes d’ensemble de lignes ci-dessus.
Classes de source de données
IDBInitializeImpl
Crée et supprime la connexion avec le consommateur. Interface obligatoire sur les objets de source de données et interface facultative sur les énumérateurs.
IDBPropertiesImpl
IDBProperties
est une interface obligatoire pour les objets de source de données et une interface facultative pour les énumérateurs. Toutefois, si un énumérateur expose IDBInitialize
, il doit exposer IDBProperties
(propriétés sur la source de données).
IGetDataSourceImpl
Obtient un pointeur d’interface vers l’objet source de données. Interface obligatoire sur la session.
Autres classes
CUtlProps
Implémente des propriétés pour une variété d’interfaces de propriété OLE DB (par exemple, IDBProperties
, ISessionProperties
et IRowsetInfo
).
Implémente l’interface OLE DB IErrorRecords , en ajoutant des enregistrements et en récupérant des enregistrements à partir d’un membre de données.