Partager via


Architecture des modèles du fournisseur OLE DB

Sources de données et sessions

L’architecture du fournisseur OLE DB inclut un objet source de données et une ou plusieurs sessions. L’objet source de données est l’objet initial que chaque fournisseur doit instancier. Lorsqu’une application consommateur a besoin de données, elle co-crée l’objet source de données pour démarrer le fournisseur. L’objet source de données crée un objet de session (à l’aide de l’interface IDBCreateSession ) via lequel le consommateur se connecte à l’objet source de données. Les programmeurs ODBC peuvent considérer l’objet source de données comme équivalent à l’objet HENV de session et l’objet de session comme équivalent à l’objet HDBC.

Diagramme de l’architecture du fournisseur.

Avec les fichiers sources créés par l’Assistant Fournisseur OLE DB, les modèles OLE DB implémentent un objet source de données. Une session est un objet qui correspond à OLE DB TSession.

Interfaces obligatoires et facultatives

Les modèles de fournisseur OLE DB vous donnent des implémentations prépackagenées pour toutes les interfaces requises. Les interfaces obligatoires et facultatives sont définies par OLE DB pour plusieurs types d’objets :

Les modèles de fournisseur OLE DB n’implémentent pas les objets de ligne et de stockage.

Le tableau suivant répertorie les interfaces obligatoires et facultatives pour les objets répertoriés ci-dessus, conformément à la documentation du Kit de développement logiciel (SDK) OLE DB 2.6.

Composant Interface Commentaire
Source de données (CDataSource) [obligatoire] IDBCreateSession

[obligatoire] IDBInitialize

[obligatoire] IDBProperties

[obligatoire] IPersist

[facultatif] IConnectionPointContainer

[facultatif] IDBAsynchStatus

[facultatif] IDBDataSourceAdmin

[facultatif] IDBInfo

[facultatif] IPersistFile

[facultatif] ISupportErrorInfo
Connexion du consommateur au fournisseur. L’objet est utilisé pour spécifier des propriétés sur la connexion, telles que l’ID utilisateur, le mot de passe et le nom de la source de données. L’objet peut également être utilisé pour administrer une source de données (créer, mettre à jour, supprimer, tables, etc.).
Session (CSession) [obligatoire] IGetDataSource

[obligatoire] IOpenRowset

[obligatoire] ISessionProperties

[facultatif] IAlterIndex

[facultatif] IAlterTable

[facultatif] IBindResource

[facultatif] ICreateRow

[facultatif] IDBCreateCommand

[facultatif] IDBSchemaRowset

[facultatif] IIndexDefinition

[facultatif] ISupportErrorInfo

[facultatif] ITableCreation

[facultatif] ITableDefinition

[facultatif] ITableDefinitionWithConstraints

[facultatif] ITransaction

[facultatif] ITransactionJoin

[facultatif] ITransactionLocal

[facultatif] ITransactionObject
L’objet de session est une conversation unique entre un consommateur et un fournisseur. Il est similaire à ODBC HSTMT dans lequel il peut y avoir de nombreuses sessions simultanées actives.

L’objet de session est le lien principal permettant d’accéder aux fonctionnalités OLE DB. Pour accéder à une commande, une transaction ou un objet d’ensemble de lignes, vous passez par l’objet de session.
Ensemble de lignes (CRowset) [obligatoire] IAccessor

[obligatoire] IColumnsInfo

[obligatoire] IConvertType

[obligatoire] IRowset

[obligatoire] IRowsetInfo

[facultatif] IChapteredRowset

[facultatif] IColumnsInfo2

[facultatif] IColumnsRowset

[facultatif] IConnectionPointContainer

[facultatif] IDBAsynchStatus

[facultatif] IGetRow

[facultatif] IRowsetChange

[facultatif] IRowsetChapterMember

[facultatif] IRowsetCurrentIndex

[facultatif] IRowsetFind

[facultatif] IRowsetIdentity

[facultatif] IRowsetIndex

[facultatif] IRowsetLocate

[facultatif] IRowsetRefresh

[facultatif] IRowsetScroll

[facultatif] IRowsetUpdate

[facultatif] IRowsetView

[facultatif] ISupportErrorInfo

[facultatif] IRowsetBookmark
L’objet d’ensemble de lignes est les données de la source de données. L’objet est utilisé pour les liaisons de ces données et toutes les opérations de base (mise à jour, extraction, déplacement et autres) sur les données. Vous disposez toujours d’un objet d’ensemble de lignes pour conserver et manipuler des données.
Commande (CCommand) [obligatoire] IAccessor

[obligatoire] IColumnsInfo

[obligatoire] ICommand

[obligatoire] ICommandProperties

[obligatoire] ICommandText

[obligatoire] IConvertType

[facultatif] IColumnsRowset

[facultatif] ICommandPersist

[facultatif] ICommandPrepare

[facultatif] ICommandWithParameters

[facultatif] ISupportErrorInfo

[facultatif] ICommandStream
L’objet de commande gère les opérations sur les données telles que les requêtes. Il peut gérer les instructions paramétrables ou non paramétrables.

L’objet de commande est également responsable de la gestion des liaisons pour les paramètres et les colonnes de sortie. Une liaison est une structure qui contient des informations sur la façon dont une colonne, dans un ensemble de lignes, doit être récupérée. Il contient des informations telles que l’ordinal, le type de données, la longueur et l’état.
Transaction (facultatif) [obligatoire] IConnectionPointContainer

[obligatoire] ITransaction

[facultatif] ISupportErrorInfo
L’objet transactionnel définit une unité atomique de travail sur une source de données et détermine la façon dont ces unités de travail se rapportent les unes aux autres. Cet objet n’est pas directement pris en charge par les modèles de fournisseur OLE DB (autrement dit, vous créez votre propre objet).

Pour plus d’informations, voir les rubriques suivantes :

Voir aussi

Modèles du fournisseur OLE DB
OLE DB Interfaces