SQL Server Native Client は、SQL Server などのデータ ストアへのリンクを確立するために使用される OLE DB インターフェイスのセットにデータ ソースという用語を使用します。 プロバイダーのデータ ソース オブジェクトのインスタンスの作成は、SQL Server Native Client コンシューマーの最初のタスクです。
すべての OLE DB プロバイダーは、それ自体のクラス識別子 (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
この例では、クラス識別子マクロを使用して SQL Server Native Client OLE DB プロバイダー データ ソース オブジェクトを作成し、その 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 メソッドが呼び出されるまで維持されます。