OLE DB プロバイダー (ADO)
OLE DB では、多様な情報ソースに格納されているデータへの一貫したアクセスをアプリケーションに提供する一連の COM インターフェイスが定義されています。 このアプローチにより、データ ソースでは、データ ソースに適した量の DBMS 機能をサポートするインターフェイスを介してデータを共有できます。 設計上、OLE DB のハイ パフォーマンス アーキテクチャは、柔軟なコンポーネント ベースのサービス モデルの使用に基づいています。 OLE DB は、アプリケーションとデータの間に所定の数の中間層を保持するのではなく、特定のタスクを実行するために必要な数のコンポーネントのみを必要とします。
たとえば、ユーザーがクエリを実行する必要があるとします。 次のシナリオで考えてみましょう。
データは、現在 ODBC ドライバーは存在するが、ネイティブ OLE DB プロバイダーは存在しないリレーショナル データベースに存在します。アプリケーションは ADO を使用して OLE DB Provider for ODBC と通信し、これはその後、適切な ODBC ドライバーを読み込みます。 ドライバーは DBMS に SQL ステートメントを渡し、これによりデータが取得されます。
データは、ネイティブ OLE DB プロバイダーが存在する Microsoft SQL Server に存在します。アプリケーションは ADO を使用して OLE DB Provider for Microsoft SQL Serverと直接通信します。 中継は不要です。
データは、OLE DB プロバイダーがあるが、SQL クエリを処理するエンジンを公開していないMicrosoft Exchange Server に存在します。アプリケーションは、ADO を使用して OLE DB Provider for Microsoft Exchange と通信し、OLE DB クエリ プロセッサ コンポーネントを呼び出してクエリ実行を処理します。
データは、ドキュメントの形式で Microsoft NTFS ファイル システムに存在します。データへのアクセスには、Microsoft Indexing Service (これは、効率的なコンテンツ検索を可能にするためにファイル システム内のドキュメントのコンテンツとプロパティにインデックスを付けます) 経由のネイティブ OLE DB プロバイダーを使用します。
上記のすべての例において、アプリケーションでデータのクエリを実行できます。 ユーザーのニーズは、最小数のコンポーネントで満たされます。 いずれの場合も、必要な場合にのみ追加のコンポーネントが使用され、必要なコンポーネントのみが呼び出されます。 このように再利用可能で共有可能なコンポーネントを要求に応じて読み込むことは、OLE DB が使用される場合のハイ パフォーマンスの実現に大きく貢献します。
プロバイダーは、2 つのカテゴリ (データを提供するものと、サービスを提供するもの) に分類されます。 データ プロバイダーは、独自のデータを所有し、表形式でアプリケーションに公開します。 サービス プロバイダーは、データを生成および使用してサービスをカプセル化し、ADO アプリケーションの機能を強化します。 サービス プロバイダーは、サービス コンポーネントとしてさらに定義することもできます。これは、他のサービス プロバイダーまたはコンポーネントと連携して動作する必要があります。
ADO は、一貫性のある、より高度なインターフェイスをさまざまな OLE DB プロバイダーに提供します。
このセクションでは、次のトピックを扱います。