# OLE DB

OLE DB ( Object Linking and Embedding, Database, parfois écrit OLEDB ou OLE-DB ) est une API conçue par Microsoft qui permet l'accès aux données provenant de diverses sources de manière uniforme. L'API fournit un ensemble d'interfaces implémentées à l'aide du Component Object Model (COM); elle n'est au delà de ça pas liée à OLE. À l'origine, Microsoft avait prévu OLE DB comme un remplacement de plus haut niveau et un successeur à ODBC, étendant ses capacités pour prendre en charge une plus grande variété de bases de données non-relationnelles, telles que les bases de données d'objets et les feuilles de calcul qui ne l'implémentent pas nécessairement.

## Méthodologie

OLE DB sépare le magasin de données de l'application qui a besoin d'y accéder via un ensemble d'abstractions qui incluent la source de données, la session, la commande et les ensembles de lignes de données. Cela a été fait car différentes applications ont besoin d’accéder à différents types et sources de données et ne souhaitent pas nécessairement accéder aux fonctionnalités avec des méthodes spécifiques à une technique en particulier. OLE DB est logiquement divisé en consommateurs et fournisseurs . Les consommateurs sont les applications qui ont besoin d’accéder aux données, et les fournisseurs sont les composants logiciels qui implémentent l’interface et fournissent ainsi les données au consommateur. OLE DB fait partie des composants d'accès aux données Microsoft (MDAC).

## Statut de support

SQL Server version 2012 de Microsoft (nom de code : « Denali ») est la dernière version à inclure un fournisseur OLE DB pour SQL Server, mais le support se poursuivra pendant 7 ans. Selon une FAQ Microsoft connexe, « Les fournisseurs comme ADO.NET qui peuvent s'exécuter sur OLE DB ne prendront pas en charge OLE DB une fois ce dernier obsolète », mais la même réponse dans la FAQ indique que le message d'origine ne concerne que le fournisseur OLE DB pour SQL Server, de sorte que la position d'OLE DB elle-même reste floue. La même FAQ indique que ODBC fonctionne mieux que OLE DB dans la plupart des cas.
Cependant, lors d'évaluations ultérieures, il a été déterminé que la dépréciation n'était pas une bonne idée, car des scénarios importants au sein de SQL Server dépendent toujours d'OLE DB et leur modification casserait certains scénarios clients existants. Le 6 octobre 2017, Microsoft a annoncé que OLE DB n'était plus obsolète et qu'une nouvelle version pour maintenir les dépendances serait publiée début 2018.

## Fournisseurs OLE DB

Un fournisseur OLE DB est un composant logiciel qui permet à un consommateur OLE DB d'interagir avec une source de données. Les fournisseurs OLE DB sont analogues aux pilotes ODBC, aux pilotes JDBC et aux fournisseurs de données ADO.NET.
Des fournisseurs OLE DB peuvent être créés pour accéder à des magasins de données simples tels qu'un fichier texte et une feuille de calcul, jusqu'à des bases de données complexes telles qu'Oracle, Microsoft SQL Server, Sybase ASE et bien d'autres. Il peut également fournir un accès à des magasins de données hiérarchiques tels que des systèmes de messagerie électronique.
Etant donné que différentes techniques de stockage de données peuvent avoir des fonctionnalités différentes cependant, chaque fournisseur OLE DB peut ne pas implémenter toutes les interfaces possibles disponibles dans la norme OLE DB. Les fonctionnalités disponibles sont implémentées via l'utilisation d'objets COM ; un fournisseur OLE DB mappera les fonctionnalités des techniques de stockage de données à une interface COM particulière. Microsoft décrit la disponibilité de chaque interface comme « spécifique au fournisseur », car elle pourrait ne pas être applicable en fonctionnalités de la technique de stockage de données spécifique. Les fournisseurs peuvent augmenter les fonctionnalités d’un magasin de données; ces capacités sont appelées services dans le jargon Microsoft.