Developpez.com

Le Club des Développeurs et IT Pro

Microsoft abandonne OLE DB dans SQL Server

Denali sera la dernière version du SGBD à soutenir l'API d'accès aux données

Le 2011-09-05 14:51:47, par Hinault Romaric, Responsable .NET
Microsoft abandonne progressivement son interface de bas niveau pour l’accès aux données OLE DB (Object Linking and Embedding, Database) pour ODBC.

L’API Microsoft OLE DB avait été développée pour permettre l’accès à différentes sources de données, incluant celles n’utilisant pas un processeur de requête SQL. La technologie avait été conçue dans le but de remplacer ODBC (Open Database Connectity).

Cependant, ODBC c’est imposé au fil du temps comme le standard de facto utilisé actuellement dans l’industrie pour l’accès et la manipulation des données relationnelles au détriment d’OLE DB.

Dans son souci d’assurer l’interopérabilité entre ses produits et ses partenaires, Microsoft annonce donc la fin du support de la technologie OLE DB au sein de son moteur de base de données SQL Server en faveur d’ODBC.

La prochaine version du SGBD SQL Server, Denali (actuellement disponible en version CTP), sera donc la dernière à supporter l’API. OLE DB sera encore pris en charge 7 ans après la publication de la version finale de Denali.

Microsoft encourage les développeurs à utiliser dorénavant ODBC dans leurs projets futurs.

Cette orientation vers ODBC offrira également une plus grande clarté aux développeurs C/C++ qui pourront désormais concentrer leurs efforts uniquement sur une seule API.

La plate forme Cloud de Microsoft, SQL Azure, a déjà intégré ce virage vers ODBC.

Une décision qui suscite néanmoins plusieurs interrogations auprès des développeurs, car Microsoft avait présenté OLE DB comme un outil plus puissant qu’ODBC. De plus, OLE DB propose certaines fonctionnalités (qui ont été utilisées par des développeurs) et qui ne sont pas disponibles avec ODBC.

Il est vrai que ces développeurs auront encore quelques années pour négocier cette transition.

Et vous ?

Que pensez-vous de ce choix de Microsoft ?

Source : Blog SQL Server
  Discussion forum
45 commentaires
  • Franck SORIANO
    Expert confirmé
    Désolé, je ne vois pas de quoi tu parles !
    Dans la référence que tu cites :
    - La première chaines de connexion utilse le connecteur .Net Db2.
    - La deuxième utilise le provider OLEDB de Microsoft pour DB2.
    - La troisième utilise le provider OLEDB d'IBM pour DB2.
    - La quatrième utilise le connecteur OLEDB de .Net.
    - La cinquième est de l'ODBC direct. Mais il ne s'agit pas d'ADO pour autant.
    - La dernière est le connecteur OBDC de .Net

    Je vois nulle part de l'ADO faisant de l'ODBC...


    utilisées par MDAC (qui a été renommé ADO, pour je ne sais quelle raison)
    Non, tu mélanges plusieurs choses :
    - ADO (Microsoft ActiveX Data Object) est une technologie permettant d'accéder à une source de données OLEDB. C'est une librairie d'objets COM dont le but est de simplifier l'utilisation de OLEDB.
    - MDAC (Microsoft Data Access Components) : C'est un package de déploiement qui contient un certain nombre de drivers et technologies pour se connecter à quelques grands SGBD. MDAC contient ADO, les providers OLEDB Microsoft pour SQL Server, Oracle, Access et la passerelle ODBC. Il contient également les drivers ODBC Microsoft pour les mêmes SGBD.

    Donc oui, tu peux te connecter en ODBC directement à certain SGBDs en installant MDAC, mais ce n'est pas de l'ADO pour autant.
  • _skip
    Expert éminent
    Envoyé par Hinault Romaric

    Que pensez-vous de ce choix de Microsoft ?
    Je vais peut être passer pour un troll (j'espère pas), mais il me semble que très peu de SGBD non microsoft proposaient une couche OLEdb réellement efficace et aboutie. Je pense que personne depuis plusieurs années n'a commencé un développement en se basant sur de l'OLEdb, sauf peut être les utilisateurs de certains RAD comme windev qui profitaient des fonctionnalités supplémentaires par rapport à ODBC (récupération de metadata notamment).
  • Philippe Robert
    Membre actif
    Envoyé par Ptit_Dje
    Ca risque d'impacter pas mal de packages SSIS par contre!
    Si SSIS existe encore lorsque OLEDB sera abandonné. Comme ce fut le cas avec l'abandon de DTS, il faudra tout réécrire !
  • Envoyé par kisitomomotene
    M$ et ces mil et une techno qu'il crée et qu'il abandonne (vb, asp, com qui ont été abandonnés..). Il donne l'impression de ne pas avoir de vision à long terme, et de faire du bricolage juste pour du fric
    Merci pour cette subtile démonstration.
  • Jinroh77
    Membre chevronné
    les lots DTS ont toujours été exécutables depuis un SQL Server 2005. Voir ici.
  • Glouferu
    Membre régulier
    Je trouve aussi qu'ils se foutent bien de notre gueule ... Apparemment la politique de Microsoft aujourd'hui est d'annoncé les futurs changement. Si il y a trop de mécontent, op ils annulent leur propal.

    La suite donc au prochain épisode !
  • CAML
    Membre averti
    via le .net Microsoft recommandait de passer par l'OLEDB et maintenant il l'abandonne. Faudrait savoir quoi
  • _skip
    Expert éminent
    Envoyé par CAML
    via le .net Microsoft recommandait de passer par l'OLEDB et maintenant il l'abandonne. Faudrait savoir quoi
    Ado.net plutôt non?
  • Freem
    Membre émérite
    Envoyé par wikipedia

    OLE DB (parfois orthographié OLEDB ou OLE-DB) est une API développée par Microsoft permettant l'accès aux données.

    OLE DB se sert d'interfaces COM (Component Object Model)1. Il a été conçu dans le but de remplacer ODBC, de ce fait il permet l'accès à des bases de données exotiques ou des sources de données qui n'utilisent pas un processeur de requêtes SQL.

    OLE DB fait partie du framework MDAC.
    Il faut dire que je n'entend parler que rarement de SGBDR n'utilisant le SQL, et que ODBC est plutôt très populaire, dans le genre.
    Je doute que l'usage d'OLE DB soit très répandu, et je pense que ms l'a compris, et que c'est pour ça qu'ils lâchent l'affaire.

    Sinon, c'est quoi la différence entre ODBC et OLE-DB?
    Meilleure performance? Ca ne me semble pas a l'ordre du jour...
    Plus simple à utiliser? Plus bas niveau, donc j'en doute, et l'époque est moins à l'optimisation du code que celle du temp.
    Plus aisément portable? J'en doute.
    Alors pourquoi utiliser cette techno?

    PS: ce sont de vraies questions, donc si on me met un down, je veux bien qu'on m'explique pourquoi.
  • Philippe Robert
    Membre actif
    Etonnant !

    J'ai toujours préféré utiliser OLEDB car plus performant qu'ODBC.
    Qu'en est-il de SQL Native Client ?