OLE DB (オブジェクトリンクと埋め込み、データベース、 OLEDBまたはOLE-DBと表記されることもある) は、さまざまなソースから統一された方法でデータにアクセスできるようにする、マイクロソフトが設計したAPIです。 [ 1 ] [ 2 ]この API は、コンポーネント オブジェクト モデル(COM)を使用して実装された一連のインターフェイスを提供します。それ以外はOLEとは関係ありません。マイクロソフトは当初、OLE DB をODBCの上位レベルの代替および後継として意図しており、オブジェクト データベースやスプレッドシートなど、必ずしも ODBC を実装していないさまざまな非リレーショナル データベースをサポートするように機能セットを拡張しました。
OLE DB は、データソース、セッション、コマンド、行セットなどの抽象化によって、データ ストアとそれにアクセスする必要のあるアプリケーションを分離します。これは、異なるアプリケーションが異なるタイプとソースのデータにアクセスする必要があり、必ずしもテクノロジー固有の方法で機能にアクセスする方法を知りたいわけではないためです。OLE DB は概念的にコンシューマーとプロバイダーに分けられます。コンシューマーはデータにアクセスする必要のあるアプリケーションであり、プロバイダーはインターフェイスを実装してコンシューマーにデータを提供するソフトウェア コンポーネントです。OLE DB は、Microsoft データ アクセス コンポーネント(MDAC) の一部です。
Microsoft のSQL Server 2012 (内部コード: 'Denali') のリリースは、SQL Server 用の OLE DB プロバイダーを含む最後のリリースですが、サポートは 7 年間継続されます。[ 3 ]関連する Microsoft FAQ によると、[ 4 ]「OLE DB 上で実行できるADO.NETなどのプロバイダーは、OLE DB が非推奨になると OLE DB をサポートしなくなります」が、同じ FAQ の回答では、元の投稿は SQL Server 用の OLE DB プロバイダーのみに関係していると述べられているため、OLE DB 自体の位置は不明です。同じ FAQ では、ほとんどの場合、ODBC は OLE DB よりも優れたパフォーマンスを発揮すると述べています。
しかし、その後のレビューで、SQL Server 内の重要なシナリオが依然として OLE DB に依存しており、それらを変更すると既存の顧客シナリオの一部が壊れるため、非推奨化は間違いであると判断されました。2017 年 10 月 6 日、マイクロソフトは OLE DB の非推奨化を解除し、依存関係を維持するための新しいバージョンを 2018 年初頭にリリースすると発表しました。[ 5 ]
OLE DBプロバイダーは、OLE DBコンシューマーがデータソースとやり取りできるようにするソフトウェアコンポーネントです。OLE DBプロバイダーは、ODBCドライバー、JDBCドライバー、およびADO.NETデータプロバイダーに相当します。
OLE DBプロバイダは、テキストファイルやスプレッドシートといった単純なデータストアから、Oracle、Microsoft SQL Server、Sybase ASEなどの複雑なデータベースまで、幅広いデータストアにアクセスできるように作成できます。また、電子メールシステムのような階層型データストアへのアクセスも可能です。
しかし、データストア技術によって機能が異なるため、すべてのOLE DBプロバイダーがOLE DB標準で利用可能なすべてのインターフェイスを実装できるわけではありません。利用可能な機能はCOMオブジェクトを使用して実装され、OLE DBプロバイダーはデータストア技術の機能を特定のCOMインターフェイスにマッピングします。Microsoftは、インターフェイスの可用性を「プロバイダー固有」と表現しており、データストア技術によっては適用できない場合があることを示しています。プロバイダーはデータストアの機能を拡張することができ、これらの機能はMicrosoftの用語ではサービスと呼ばれます。