データ ソース オブジェクト (OLE DB)
SQL Server Native Clientでは、データ ストアへのリンク (SQL Server など) を確立するために使用される OLE DB インターフェイスのセットのデータ ソースという用語が使用されます。 プロバイダーのデータ ソース オブジェクトのインスタンスを作成することは、SQL Server Native Client コンシューマーの最初のタスクです。
すべての OLE DB プロバイダーは、そのプロバイダー自体のクラス ID (CLSID) を宣言します。 SQL Server Native Client OLE DB プロバイダーの CLSID は、C/C++ GUID CLSID_SQLNCLI10です (シンボルSQLNCLI_CLSIDは、参照する sqlncli.h ファイル内の正しい progid に解決されます)。 コンシューマーは、CLSID を指定して OLE CoCreateInstance 関数を使用し、データ ソース オブジェクトのインスタンスを作成します。
SQL Server Native Clientはインプロセス サーバーです。 SQL SERVER NATIVE CLIENT OLE DB プロバイダー オブジェクトのインスタンスは、実行可能コンテキストを示すために CLSCTX_INPROC_SERVER マクロを使用して作成されます。
SQL SERVER NATIVE CLIENT OLE DB プロバイダー データ ソース オブジェクトは、コンシューマーが既存のSQL Server データベースに接続できるようにする OLE DB 初期化インターフェイスを公開します。
SQL Server Native Client OLE DB プロバイダーを介して行われるすべての接続では、次のオプションが自動的に設定されます。
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
この例では、クラス識別子マクロを使用して、OLE DB プロバイダー データ ソース オブジェクトSQL Server Native Client作成し、その IDBInitialize インターフェイスへの参照を取得します。
IDBInitialize* pIDBInitialize;
HRESULT hr;
hr = CoCreateInstance(CLSID_SQLNCLI10, 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.
}
SQL SERVER NATIVE CLIENT OLE DB プロバイダー データ ソース オブジェクトのインスタンスが正常に作成されると、コンシューマー アプリケーションはデータ ソースを初期化し、セッションを作成することで続行できます。 OLE DB セッションは、データへのアクセスや操作を可能にするインターフェイスを提供します。
SQL Server Native Client OLE DB プロバイダーは、正常なデータ ソースの初期化の一環として、指定された SQL Server のインスタンスへの最初の接続を行います。 いずれかのデータ ソース初期化インターフェイスで参照が保持されている間、または IDBInitialize::Uninitialize メソッドが呼び出されるまで、その最初の接続が維持されます。