quelle est la différence entre les données OLE DB et ODBC sources?
J'ai lu l'aide de MS Excel article sur pivotcache et me demande ce qu'ils entendent par OLE DB et ODBC sources
...Vous devez utiliser le CommandText
la propriété à la place de la propriété SQL,
qui existe maintenant principalement pour
compatibilité avec les versions antérieures de
Microsoft Excel. Si vous utilisez à la fois
propriétés, la propriété CommandText de l'
la valeur l'emporte.Pour sources OLE DB, le CommandType
propriété décrit la valeur de la
Propriété CommandText.Pour sources ODBC, le CommandText
propriété fonctionne exactement comme l'
Propriété SQL, et la définition de la propriété
les causes de l'information est mise à jour...
J'apprécie vraiment vos réponses courtes.
- Juste une note de côté, selon ce livre, la mise en Œuvre d'un Entrepôt de Données avec Microsoft SQL Server 2012: "Microsoft a annoncé que, à un certain point dans un proche avenir, le support pour les connexions OLE DB sera supprimé en faveur de connexions ODBC."
- Depuis le 6 octobre en 2017, il est undeprecated. Voir blogs.msdn.microsoft.com/sqlnativeclient/2017/10/06/...
Vous devez vous connecter pour publier un commentaire.
Selon ADO: les Objets de Données ActiveX, un livre de Jason T. Roff, publié par O'Reilly Media en 2001 (excellent schéma ici), il dit précisément ce que MOZILLA a dit.
(directement à partir de la page 7 de ce livre)
Il semblerait que l'OLE DB interagit avec SQL basé sur les sources de données par le pilote ODBC de la couche.
Je ne suis pas 100% sûr que cette image est correcte. Les deux liens que je ne suis pas certain de sont ADO.NET thru ADO C-api, et OLE DB thru ODBC pour SQL base de données source (parce que dans ce diagramme l'auteur n'a pas mis OLE DB accès thru ODBC, je crois que c'est une erreur).
System.Data.SqlClient
gère le protocole TDS en code managé, en utilisant uniquement du code natif pour gérer le protocole TCP/Named Pipes/etc transmission sur le réseau. Pour les bases de données qui n'ont pas de fournisseur géré de leur propre, vous pouvez utiliserSystem.Data.OleDb
pour envelopper OLE DB ouSystem.Data.Odbc
pour envelopper ODBC, mais il n'est pas recommandé.ODBC:- Uniquement pour les bases de données relationnelles (Sql Server, Oracle, etc)
OLE DB:- Pour les deux relationnelles et non relationnelles, bases de données. (Oracle, Sql-Server, Excel, fichiers raw, etc)
Open Database Connectivity (ODBC) is Microsoft's strategic interface for accessing data in a heterogeneous environment of relational and non- relational database management systems.
support.microsoft.com/en-us/kb/110093Voici ma compréhension (non définitive):
ODBC est une technologie-agnostique standard ouvert supporté par la plupart des éditeurs de logiciels.
Ole db est une la technologie spécifique à la de Microsoft API de la COM-ère (COM est un composant et de l'interopérabilité de la technologie de l'avant .NET)
À un certain point divers datasouce fournisseurs (par exemple, Oracle, etc.), prêt à être compatible avec Microsoft consommateurs de données, a développé fournisseurs OLEDB pour leurs produits, mais pour la plupart, OLEDB reste un Microsoft-seulement la norme. Maintenant, la plupart des Microsoft sources de données permettent à la fois ODBC et OLEDB accès, principalement pour assurer la compatibilité avec les anciens de données ODBC consommateurs. Aussi, il existe fournisseur OLEDB (wrapper) pour ODBC qui permet d'utiliser les OLEDB pour accéder à des sources de données ODBC si on le souhaite.
En termes de fonctionnalités OLEDB est sensiblement plus riche que ODBC, mais il souffre d'un anneau-à-dire, de toutes syndrome (trop générique, trop compliqué, non d'opinions).
Non-Microsoft ODBC base de données fournisseurs et les clients sont largement utilisés et ne pas aller n'importe où.
À l'intérieur de Microsoft bulle OLEDB est progressive en faveur des indigènes .NET Api de construire au-dessus de ce que le natif de la couche de transport pour cette source de données (par exemple, TDS pour MS SQL Server).
ODBC et OLE DB sont deux concurrents technologies d'accès aux données. En ce qui concerne spécifiquement SQL Server, Microsoft a promu les deux favoris de la Future Direction, mais à des moments différents.
ODBC
ODBC est une interface standard pour l'accès à la table de données. Il a été principalement développé pour les bases de données et présente les données dans les collections d'enregistrements, chaque de ce qui est regroupé dans une collection de champs. Chaque domaine a son propre type de données approprié pour le type de données qu'il contient.
Chaque fournisseur de base de données (Microsoft, Oracle, Postgres, ...) fournit un pilote ODBC pour la base de données.
Il y a aussi des pilotes ODBC pour des objets qui, s'ils ne sont pas des tables de base de données, sont suffisamment similaires pour que l'accès aux données de la même manière utile. Exemples de feuilles de calcul, des fichiers CSV et en colonnes rapports.
OLE DB
OLE DB est une technologie de Microsoft pour l'accès aux données. Contrairement à ODBC elle englobe à la fois la table et non sous forme de tableau des données telles que les messages électroniques, des pages web, des documents Word et des répertoires de fichiers. Cependant, il est de votre procédure plutôt que de l'orienté objet et est considéré comme l'un plutôt difficile interface pour développer l'accès à des sources de données. Pour surmonter cette difficulté, ADO a été conçu pour être une couche orientée objets sur le dessus de OLE DB et de fournir un moyen plus simple et de plus haut niveau, mais quand même très puissant – moyen de travailler avec elle. ADO est un grand avantage que vous pouvez utiliser pour manipuler des propriétés qui sont spécifiques à un type de source de données, aussi facilement que vous pouvez l'utiliser pour accéder à ces propriétés qui s'appliquent à tous les types de source de données. Vous n'êtes pas limité à certains insatisfaisant plus petit dénominateur commun.
Alors que toutes les bases de données ont des pilotes ODBC, ils n'ont pas tous OLE DB pour pilotes. Cependant, il existe une interface entre OLE et ODBC qui peut être utilisé si vous souhaitez accéder dans OLE DB-comme la mode. Cette interface est appelée MSDASQL (fournisseur Microsoft OLE DB pour ODBC).
De Données SQL Server Technologies d'Accès
Depuis SQL Server est (1) par Microsoft, et (2) la de base de données Microsoft plate-forme, les deux ODBC et OLE DB sont un choix naturel pour elle.
ODBC
Puisque toutes les autres plateformes de base de données avait ODBC interfaces, Microsoft avait évidemment d'en fournir une pour SQL Server. En plus de cela, DAO, par défaut d'origine de la technologie dans Microsoft Access, utilise ODBC comme le standard de la façon de parler à toutes les sources de données externes. Ce fait d'une interface ODBC une condition sine qua non.
La version 6 du pilote ODBC pour SQL Server, publié avec SQL Server 2000, est toujours là. Des versions mises à jour ont été publiées pour gérer les nouveaux types de données, des technologies de connexion, le cryptage, les HA/DR, etc. qui sont apparus avec les versions ultérieures. Comme de 09/07/2018 la version la plus récente est v13.1 “Pilote ODBC pour SQL Server”, publié sur 23/03/2018.
OLE DB
Microsoft, qui est le propre de la technologie, ce qui encourage fortement à partir d'environ 2002 – 2005, avec son accompagnement ADO couche. Ils étaient évidemment en espérant qu'il allait devenir la technologie d'accès aux données de son choix. (Ils ont même fait ADO la méthode par défaut pour accéder à des données en Accès 2002/2003.) Cependant, il est devenu évident que cela n'allait pas se produire pour un certain nombre de raisons, telles que:
loin de ODBC;
pourrait également parler directement à ODBC. ADO.NET pouvait parler directement à OLE
DB ainsi (donc en laissant un ADO dans un marigot), mais il ne l'est pas (contrairement à
ADO) uniquement dépendant de lui.
Pour ces raisons et les autres, Microsoft fait obsolète OLE DB comme une technologie d'accès aux données pour les versions SQL Server après v11 (SQL Server 2012). Pour un couple d'années avant de ce point, ils avaient été la production et la mise à jour de SQL Server Native Client, qui a pris en charge les deux ODBC et OLE DB technologies. À la fin de 2012, cependant, ils ont annoncé qu'ils seraient en l'alignant avec ODBC natif d'accès aux données relationnelles SQL Server, et a encouragé tout le monde à faire de même. Ils ont en outre déclaré que les versions SQL Server après v11/SQL Server 2012 seraient activement pas en charge OLE DB!
Cette annonce a provoqué une tempête de protestations. Les gens étaient à une perte de comprendre pourquoi MS a été soudainement la dépréciation d'une technologie qu'ils avaient passé des années à les amener à s'engager. En outre, SSAS/SSRS et SSIS, qui étaient MS-écrit applications intimement lié à SQL Server, ont été en tout ou en partie tributaire de OLE DB. Pourtant, une autre plainte a été OLE DB a certaines caractéristiques souhaitables, dont il semble impossible de port de retour d'ODBC après tout, OLE DB a eu beaucoup de bons points.
En octobre 2017, Microsoft a cédé et officiellement onu-déconseillé OLE DB. Ils ont annoncé l'arrivée imminente d'un nouveau pilote (MSOLEDBSQL) qui aurait la fonctionnalité existante ensemble de la Native Client 11 et serait également introduire de sous-réseaux multiples de basculement et TLS 1.2. Le pilote a été publié en Mars 2018.
Sur un niveau très basique ce sont juste des Api différentes pour les différentes sources de données (c'est à dire les bases de données). OLE DB est plus récente et sans doute mieux.
Vous pouvez en lire plus sur les deux dans Wikipedia:
I. e. vous pouvez vous connecter à la même base de données via un driver ODBC ou OLE DB pilote. La différence dans la base de données de comportement dans ces cas, est ce que votre livre se réfère à.
Les deux sont des fournisseurs de données (API que votre code a utiliser pour parler à une source de données). Oledb qui a été introduit en 1998, qui était destiné à être un remplacement pour ODBC (depuis 1992)
• Août 2011: Microsoft dénonçait OLE DB (Microsoft est l'Alignement avec ODBC Natif d'Accès aux Données Relationnelles)
• Octobre 2017: Microsoft undeprecates OLE DB (L'annonce de la nouvelle version du Pilote OLE DB pour SQL Server)
Je ne suis pas sûr de tous les détails, mais ma compréhension est que OLE DB et ODBC sont deux Api sont disponibles pour la connexion à différents types de bases de données sans avoir à traiter avec toute la mise en œuvre des détails spécifiques de chacun. Selon l'article de Wikipedia sur OLE DB, OLE DB Microsoft, qui est le successeur de ODBC, et fournit quelques fonctionnalités que vous pourriez ne pas être en mesure de le faire avec ODBC telles que l'accès aux feuilles de calcul en tant que sources de base de données.
Au site web de Microsoft, il montre que le fournisseur OLEDB natif est appliqué à SQL server directement et un autre fournisseur OLEDB appelé ole db Provider for ODBC pour accéder à d'autres bases de données, tels que Sysbase, DB2, etc. Il existe différents types de composant Fournisseur OLEDB. Voir Les Requêtes distribuées sur MSDN pour plus d'.
ODBC fonctionne uniquement pour les bases de données relationnelles, il ne peut pas fonctionne avec des bases de données non relationnelles telles que les fichiers Ms Excel. Où Olebd peut tout faire.
Savoir pourquoi M$ invente OLEDB, vous ne pouvez pas comparer OLEDB, ODBC. Au lieu de cela, vous devriez comparer OLEDB avec DAO,RDO, ou ADO. La seconde grande partie s'appuie sur SQL. Cependant, OLEDB s'appuie sur COM. Mais ODBC existe déjà de nombreuses années, il y a un OLEDB-ODBC ponts pour y remédier. Je pense qu'il y a une grande image quand M$ invente OLEDB.