次の方法で共有


データ ソース オブジェクト (OLE DB)

適用対象: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)

OLE DB ドライバーのダウンロード

OLE DB Driver for SQL Server では、SQL Server などのデータ ストアへのリンクを確立するために使用する OLE DB インターフェイスのセットのことをデータ ソースと呼びます。 OLE DB Driver for SQL Server のコンシューマーの最初のタスクは、プロバイダーのデータ ソース オブジェクトのインスタンスを作成することです。

すべての OLE DB プロバイダーは、そのプロバイダー自体のクラス ID (CLSID) を宣言します。 OLE DB Driver for SQL Server の CLSID は C/C++ GUID CLSID_MSOLEDBSQL です (記号 MSOLEDBSQL_CLSID は、参照する msoledbsql.h ファイルの正しい progid に解決されます)。 コンシューマーは、CLSID を指定して OLE CoCreateInstance 関数を使用し、データ ソース オブジェクトのインスタンスを作成します。

OLE DB Driver for SQL Server はインプロセス サーバーです。 実行可能なコンテキストを示すために、CLSCTX_INPROC_SERVER マクロを使用して、OLE DB Driver for SQL Server のオブジェクトのインスタンスを作成します。

OLE DB Driver for SQL Server のデータ ソース オブジェクトでは、OLE DB 初期化インターフェイスが公開されます。コンシューマーは、このインターフェイスを使用して、既存の SQL Server データベースに接続できます。

OLE DB Driver for SQL Server 経由で行うすべての接続では、次のオプションが自動的に設定されます。

  • SET ANSI_WARNINGS ON
  • SET ANSI_NULLS ON
  • SET ANSI_PADDING ON
  • SET ANSI_NULL_DFLT_ON ON
  • SET QUOTED_IDENTIFIER ON
  • SET CONCAT_OF_NULL_YIELDS_NULL ON

次の例では、クラス ID マクロを使用して、OLE DB Driver for SQL Server のデータ ソース オブジェクトを作成し、そのデータ ソース オブジェクトの IDBInitialize インターフェイスを取得します。

IDBInitialize*   pIDBInitialize;
HRESULT          hr;

hr = CoCreateInstance(CLSID_MSOLEDBSQL, NULL, CLSCTX_INPROC_SERVER,
    IID_IDBInitialize, (void**) &pIDBInitialize);

if (SUCCEEDED(hr))
{
    //  Perform necessary processing with the interface.
    pIDBInitialize->Uninitialize();
    pIDBInitialize->Release();
}
else
{
    // Display error from CoCreateInstance.
}

OLE DB Driver for SQL Server のデータ ソース オブジェクトのインスタンスが正常に作成された場合、データ ソースを初期化し、セッションを作成することで、コンシューマー アプリケーションを続行できます。 OLE DB セッションは、データへのアクセスや操作を可能にするインターフェイスを提供します。

OLE DB Driver for SQL Server は、データ ソースを正常に初期化する作業の一環として、SQL Server の指定されたインスタンスへの最初の接続を行います。 いずれかのデータ ソース初期化インターフェイスで参照が保持されている間、または IDBInitialize::Uninitialize メソッドが呼び出されるまで、その最初の接続が維持されます。

このセクションの内容

参照

OLE DB Driver for SQL Server のプログラミング