ODBCとOLE DBは、2つの競合するデータアクセステクノロジです。特にSQL Serverに関しては、Microsoftは両方を推奨される将来の方向性として宣伝しましたが、時期は異なります。
ODBC
ODBCは、テーブルのようなデータにアクセスするための業界全体の標準インターフェースです。主にデータベース用に開発され、レコードのコレクションにデータを表示します。各レコードはフィールドのコレクションにグループ化されています。各フィールドには、含まれるデータのタイプに適した独自のデータタイプがあります。各データベースベンダー(Microsoft、Oracle、Postgresなど)は、データベース用のODBCドライバーを提供しています。
データベーステーブルではありませんが、同じ方法でデータにアクセスすることが有用であるように十分に似ているオブジェクトのODBCドライバーもあります。例としては、スプレッドシート、CSVファイル、および縦列レポートがあります。
OLE DB
OLE DBは、データにアクセスするためのMicrosoftのテクノロジーです。ODBCとは異なり、電子メールメッセージ、Webページ、Word文書、ファイルディレクトリなど、テーブル形式と非テーブル形式の両方のデータが含まれます。ただし、オブジェクト指向ではなくプロシージャ指向であり、データソースへのアクセスを開発するためのかなり難しいインターフェイスと見なされています。これを克服するために、ADOはOLE DBの上にあるオブジェクト指向のレイヤーになるように設計されており、ADOを操作するためのよりシンプルで高レベルの(ただし非常に強力ですが)方法を提供します。ADOの大きな利点は、それを使用して、すべてのデータソースの種類に適用されるプロパティにアクセスするのと同じくらい簡単に、特定の種類のデータソースに固有のプロパティを操作できることです。あなたはいくつかの不十分な最低共通分母に制限されていません。
すべてのデータベースにはODBCドライバーがありますが、すべてにOLE DBドライバーがあるわけではありません。ただし、OLE DBのような方法でアクセスしたい場合に使用できるOLEとODBCの間に使用可能なインターフェースがあります。このインターフェイスはMSDASQL(ODBC用のMicrosoft OLE DBプロバイダー)と呼ばれます。
SQL Serverデータアクセステクノロジ
SQL Serverは、(1)は、Microsoftによって作られた、および(2)であるので、マイクロソフトのデータベースプラットフォームを、ODBCおよびOLE DBの両方がそれのために自然にフィットしています。
ODBC
他のすべてのデータベースプラットフォームにはODBCインターフェイスがあったため、Microsoftは明らかにSQL Server用に1つ提供する必要がありました。これに加えて、Microsoft Accessの元のデフォルトテクノロジーであるDAOは、すべての外部データソースと通信する標準的な方法としてODBCを使用します。これにより、ODBCインターフェースが正弦波になりました。SQL Server 2000と共にリリースされたSQL Serverのバージョン6 ODBCドライバーはまだ存在しています。以降のリリースで登場した新しいデータタイプ、接続テクノロジー、暗号化、HA / DRなどを処理するために、更新されたバージョンがリリースされました。2018年7月9日の最新リリースは、2018年3月23日にリリースされたv13.1「SQL Server用のODBCドライバー」です。
OLE DB
これは、マイクロソフト独自のテクノロジであり、2002年から2005年頃にかけて、ADOレイヤーとともに強力に宣伝されました。彼らはそれが選択のデータアクセス技術になることを明らかに望んでいた。(彼らはADOをAccess 2002/2003のデータにアクセスするためのデフォルトの方法にさえしました。)しかし、これは以下のようないくつかの理由で発生しないことが最終的に明らかになりました。
- 世界はマイクロソフトテクノロジーに移行するつもりはなく、ODBCから離れていません。
- DAO / ODBCはADO / OLE DBよりも高速であり、MS Accessにも完全に統合されていたため、自然死には至りませんでした。
- Microsoftが開発している新技術、特にADO.NETは、ODBCと直接通信することもできます。ADO.NETはOLE DBと直接通信することもできます(したがって、ADOをバックウォーターに置きます)が、ADOとは異なり、それだけに依存していませんでした。
これらの理由やその他の理由により、Microsoftは実際にOLE DBを v11以降のSQL Serverリリース(SQL Server 2012)のデータアクセステクノロジーとして非推奨にしました。この時点までの数年間は、ODBCとOLE DBの両方のテクノロジをサポートするSQL Server Native Clientを作成および更新していました。ただし、2012年後半に、SQL ServerのネイティブリレーショナルデータアクセスのためにODBCと連携することを発表し、他のすべての人にも同じことを行うように勧めました。彼らはさらに、v11 / SQL Server 2012以降のSQL ServerリリースはOLE DBを積極的にサポートしないと述べました!
この発表は抗議の嵐を巻き起こした。なぜMSは、何年もかけてコミットするよう求めてきたテクノロジーを突然廃止したのか理解に困惑しました。さらに、SQL Serverに密接にリンクされたMSで作成されたアプリケーションであるSSAS / SSRSとSSISは、完全にまたは部分的にOLE DBに依存していました。さらに別の不満は、OLE DBには、ODBCに移植するのは不可能と思われる望ましい機能があったことです。結局、OLE DBには多くの優れた点がありました。
2017年10月、Microsoftは、正式に非推奨のOLE DBを採用しました。彼らは、Native Client 11の既存の機能セットを備え、マルチサブネットフェイルオーバーとTLS 1.2サポートを導入する新しいドライバー(MSOLEDBSQL)の差し迫った到着を発表しました。ドライバーは2018年3月にリリースされました。