SQL Server Native Client 會針對用來建立數據存放區連結的 OLE DB 介面集使用數據源一詞,例如 SQL Server。 建立提供者數據源對象的實例是 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 提供者數據源物件會公開 OLE DB 初始化介面,讓取用者連線到現有的 SQL Server 資料庫。
透過 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 方法為止,就會維護連接。