SQL Server ネイティブ クライアント データ ソース オブジェクト (OLE DB)
適用対象: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)
重要
SQL Server Native Client (SNAC と略されることがよくあります) は、SQL Server 2022 (16.x) と SQL Server Management Studio 19 (SSMS) から削除されました。 SQL Server Native Client OLE DB プロバイダー (SQLNCLI または SQLNCLI11) とレガシ Microsoft OLE DB Provider for SQL Server (SQLOLEDB) はどちらも、新しい開発には推奨されません。 今後は、新しい Microsoft OLE DB Driver (MSOLEDBSQL) for SQL Server に切り替えてください。
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
この例では、クラス識別子マクロを使用して 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 メソッドが呼び出されるまで、その最初の接続が維持されます。