ODBC та OLE DB - це дві конкуруючі технології доступу до даних. Зокрема, що стосується SQL Server, Microsoft рекламувала їх обох як їх переважне майбутнє напрямок - хоча в різний час.
ODBC
ODBC - це загальновиробничий стандартний інтерфейс для доступу до даних, подібних до таблиці. Він був розроблений в основному для баз даних і представляє дані у колекціях записів, кожен з яких згрупований у колекцію полів. Кожне поле має свій власний тип даних, відповідний типу даних, які він містить. Кожен постачальник баз даних (Microsoft, Oracle, Postgres,…) постачає драйвер ODBC для своєї бази даних.
Існують також драйвери ODBC для об'єктів, які хоч і не є таблицями баз даних, але є досить подібними, що доступ до даних тим самим корисний. Прикладами є електронні таблиці, файли CSV та стовпчикові звіти.
OLE DB
OLE DB - це технологія Microsoft для доступу до даних. На відміну від ODBC, він охоплює як табличні, так і нетабличні дані, такі як повідомлення електронної пошти, веб-сторінки, документи Word та файлові каталоги. Однак він орієнтований на процедуру, а не на об'єктно-орієнтований і розглядається як досить складний інтерфейс, за допомогою якого можна розвивати доступ до джерел даних. Щоб подолати це, ADO був розроблений як об'єктно-орієнтований шар поверх OLE DB та для забезпечення більш простого і більш високого рівня - хоча і все ще дуже потужного - способу роботи з ним. Велика перевага ADO в тому, що ви можете використовувати його для маніпулювання властивостями, характерними для даного типу джерела даних, так само легко, як і ви можете використовувати його для доступу до тих властивостей, які застосовуються до всіх типів джерел даних. Ви не обмежені якось незадовільним найнижчим загальним знаменником.
Хоча всі бази даних мають драйвери ODBC, вони не мають усіх драйверів OLE DB. Однак існує інтерфейс між OLE та ODBC, який можна використовувати, якщо ви хочете отримати доступ до них у вигляді OLE DB-like. Цей інтерфейс називається MSDASQL (постачальник Microsoft OLE DB для ODBC).
Технології доступу до даних SQL Server
Оскільки SQL Server є (1) , зроблена Microsoft, і (2) платформа бази даних Microsoft, як ODBC і OLE DB є природним для нього.
ODBC
Оскільки всі інші платформи баз даних мали інтерфейси ODBC, Microsoft, очевидно, повинна була забезпечити її для SQL Server. На додаток до цього, DAO, оригінальна технологія за замовчуванням у Microsoft Access, використовує ODBC як стандартний спосіб спілкування з усіма зовнішніми джерелами даних. Це зробило інтерфейс ODBC обов'язковим умовою. Драйвер ODBC версії 6 для SQL Server, випущений із SQL Server 2000, все ще існує. Оновлені версії були випущені для обробки нових типів даних, технологій підключення, шифрування, HA / DR тощо, які з'явилися з наступними випусками. Станом на 07.07.2018 останній реліз - v13.1 «Драйвер ODBC для SQL Server», випущений 23.03.2018.
OLE DB
Це власна технологія Microsoft, яку вони активно просували приблизно з 2002 по 2005 роки, а також супровідний рівень ADO. Вони, очевидно, сподівалися, що це стане вибору технології доступу до даних. (Вони навіть зробили ADO методом за замовчуванням для доступу до даних у Access 2002/2003.) Однак, врешті-решт, стало очевидним, що це не відбудеться з ряду причин, таких як:
- Світ не збирався перетворюватися на технології Microsoft і віддалятися від ODBC;
- DAO / ODBC був швидшим, ніж ADO / OLE DB, а також був ретельно інтегрований у MS Access, тому не зміг померти природною смертю;
- Нові технології, що розробляються Microsoft, зокрема ADO.NET, також можуть безпосередньо спілкуватися з ODBC. ADO.NET також міг би спілкуватися безпосередньо з OLE DB (таким чином, залишаючи ADO в затоці), але він не був (на відміну від ADO) виключно залежним від нього.
З цих причин та інших , Microsoft фактично застарів OLE DB як технологію доступу до даних для релізів SQL Server після v11 (SQL Server 2012). За кілька років до цього моменту вони виробляли та оновлювали Native Client SQL Server, який підтримував як ODBC, так і технології OLE DB. Однак наприкінці 2012 року вони оголосили, що будуть узгоджуватися з ODBC для нативного реляційного доступу до даних на SQL Server, і закликали всіх інших робити те саме. Вони також заявили, що версії SQL Server після v11 / SQL Server 2012 активно не підтримують OLE DB!
Це оголошення спровокувало бурю протесту. Люди втрачали розуміння того, чому МС раптом знецінила технологію, яку вони витратили протягом багатьох років, змусивши їх взяти на себе зобов’язання. Крім того, SSAS / SSRS і SSIS, які були написаними MS програмами, тісно пов'язаними з SQL Server, повністю або частково залежали від OLE DB. Ще одна скарга полягала в тому, що OLE DB має певні бажані функції, які, здавалося, неможливо перенести назад до ODBC - адже OLE DB мав багато хороших моментів.
У жовтні 2017 року Microsoft поступилася і офіційно не застаріла DB OLE . Вони оголосили про неминучий прихід нового драйвера (MSOLEDBSQL), який матиме наявний набір функцій Native Client 11, а також запроваджуватиме відключення підмережі та підтримку TLS 1.2. Водія звільнили у березні 2018 року.