Renonçation OLE DB

Microsoft a renoncé la prestation de OLE DB pour SQL Server. Ce sera ODBC maintenant.

Permettez-moi de vous rappeler l'histoire.

Dans la version 6.x de SQL Server, qui a été encore "presque Sybase 8", l'interface native pour accéder à la base de données est DB-Library (DLL et bibliothèque C/C++). Le pilote ODBC vient comme "standard" en plus.

Après la réfont de SGBD en version 7 en 1998 Microsoft annonse le refus de DB-Library pour le bénéfice de OLE DB et affirme que celle-la est maintenant native. La formulation même de la phrase qu'une interface générique peut être à la fois native m'a fait sourire.

Le support pour DB-Library est abandonnée dans SQL Server 2000. Cette bibliothèque a été toujours là, mais elle tourne au-dessus de OLE DB (sic! C/C++ bibliothèque au-dessus de COM). Depuis 2005 il n'y a plus DB-library (mais elle fonctionne sur les vieux applications même avec SQL Server 2008).

Par contre, le pilote ODBC est fait "from scratch", il réalise le protocole d'accès aux données au niveau du réseau (IP sockets). Pour cette raison il est autonome (aucunes autres "natives" DLL ne sont plus nécessaires) et très performant. SQL QueryAnalyser et puis SQL Server Management Studio utilisent ODBC.

Enfin, le temps montre que l'appui simultané sur OLE DB et ODBC dans un état fonctionnellement synchrone coût trop chère. Et il s'avère que l'interface native n'est pas vraiment (ou suffisamment) «native». Et que, en effet, l'interface native n'existe pas, mais il n'y a que ODBC, qui est désormais déclarée comme «native», et SqlClient pour .NET. Servez-vous mieux, chers développeurs ;)