Modèles du fournisseur OLE DB (C++)
OLE DB est une partie importante de la stratégie Microsoft Universal Data Access. La conception OLE DB permet un accès aux données hautes performances à partir de n’importe quelle source de données. Toutes les données tabulaires sont visibles via OLE DB, qu’elles proviennent d’une base de données. La flexibilité vous donne une grande quantité de puissance.
Comme expliqué dans OLE DB Consumers and Providers, OLE DB utilise le concept de consommateurs et de fournisseurs. Le consommateur effectue des demandes de données ; le fournisseur retourne des données dans un format tabulaire au consommateur. Du point de vue de la programmation, l’implication la plus importante de ce modèle est que le fournisseur doit implémenter n’importe quel appel que le consommateur peut effectuer.
Qu’est-ce qu’un fournisseur ?
Un fournisseur OLE DB est un ensemble d’objets COM qui servent des appels d’interface à partir d’un objet consommateur, en transférant des données dans un format tabulaire d’une source durable (appelée magasin de données) au consommateur.
Les fournisseurs peuvent être simples ou complexes. Le fournisseur peut prendre en charge une quantité minimale de fonctionnalités ou un fournisseur de qualité de production entièrement soufflé en implémentant davantage d’interfaces. Un fournisseur peut retourner une table, autoriser le client à déterminer le format de cette table et effectuer des opérations sur ces données.
Chaque fournisseur implémente un ensemble standard d’objets COM pour gérer les requêtes du client, ce qui signifie que tout consommateur OLE DB peut accéder aux données de n’importe quel fournisseur, quel que soit le langage (par exemple, C++ et Basic).
Chaque objet COM contient plusieurs interfaces, dont certaines sont requises et dont certaines sont facultatives. En implémentant les interfaces obligatoires, un fournisseur garantit un niveau minimal de fonctionnalités (appelé conformité) que tout client doit pouvoir utiliser. Un fournisseur peut implémenter des interfaces facultatives pour fournir des fonctionnalités supplémentaires. L’architecture du modèle de fournisseur OLE DB décrit ces interfaces en détail. Le client doit toujours appeler QueryInterface
pour déterminer si un fournisseur prend en charge une interface donnée.
Prise en charge du niveau de spécification OLE DB
Les modèles de fournisseur OLE DB prennent en charge la spécification OLE DB version 2.7. À l’aide des modèles de fournisseur OLE DB, vous pouvez implémenter un fournisseur conforme de niveau 0. L’exemple Provider
utilise, par exemple, les modèles pour implémenter un serveur de commandes non-SQL (MS-DOS) qui exécute la commande DOS DIR pour interroger le système de fichiers. L’exemple Provider
retourne les informations de répertoire dans un ensemble de lignes, qui est le mécanisme OLE DB standard pour retourner des données tabulaires.
Le type de fournisseur le plus simple pris en charge par les modèles OLE DB est un fournisseur en lecture seule sans commandes. Les fournisseurs avec des commandes sont également pris en charge, comme les fonctionnalités de signet et de lecture/écriture. Vous pouvez implémenter un fournisseur de lecture/écriture en écrivant du code supplémentaire. Les ensembles de lignes dynamiques et les transactions ne sont pas pris en charge par la version actuelle, mais vous pouvez les ajouter si vous le souhaitez.
Quand devez-vous créer un fournisseur OLE DB ?
Vous n’avez pas toujours besoin de créer votre propre fournisseur ; Microsoft fournit plusieurs fournisseurs prépackagenés et standard dans la boîte de dialogue Propriétés de la liaison de données dans Visual C++. La principale raison de créer un fournisseur OLE DB est de tirer parti de la stratégie d’accès aux données universelles. Voici quelques-uns des avantages suivants :
Accès aux données via n’importe quel langage tel que C++, Basic et Visual Basic Scripting Edition. Il permet à différents programmeurs de votre organisation d’accéder aux mêmes données de la même façon, quelle que soit la langue qu’ils utilisent.
Ouvrez vos données vers d’autres sources de données telles que SQL Server, Excel et Access. Cela peut être utile si vous souhaitez transférer des données entre différents formats.
Participation à des opérations de source de données croisées (hétérogènes). Cela peut être un moyen efficace d’entreposage de données. En utilisant des fournisseurs OLE DB, vous pouvez conserver des données dans son format natif et toujours pouvoir y accéder dans une opération simple.
Ajout de fonctionnalités supplémentaires à vos données, telles que le traitement des requêtes.
Amélioration des performances d’accès aux données en contrôlant la façon dont elles sont manipulées.
Robustesse croissante. Si vous avez un format de données propriétaire auquel un seul programmeur peut accéder, vous êtes à risque. À l’aide de fournisseurs OLE DB, vous pouvez ouvrir ce format propriétaire à tous vos programmeurs.
Fournisseurs en lecture seule et pouvant être mis à jour
Les fournisseurs peuvent varier considérablement en complexité et en fonctionnalités. Il est utile de classer les fournisseurs en fournisseurs en lecture seule et les fournisseurs pouvant être mis à jour :
- Visual C++ 6.0 prend en charge uniquement les fournisseurs en lecture seule. La création d’un fournisseur OLE DB explique comment créer un fournisseur en lecture seule.
- Visual C++ prend en charge les fournisseurs pouvant être mis à jour (en écriture) dans le magasin de données. Pour plus d’informations sur les fournisseurs pouvant être mis à jour, consultez Création d’un fournisseur pouvant être mis à jour ; l’exemple UpdatePV est un exemple de fournisseur pouvant être mis à jour.
Pour plus d’informations, consultez l’article suivant :
Voir aussi
Accès aux données
Documentation du Kit de développement logiciel (SDK) OLE DB
Informations de référence du programmeur OLE DB