SQL Server Native Client資料來源物件 (OLE DB)

適用於:SQL ServerAzure SQL DatabaseAzure SQL 受控執行個體Azure Synapse AnalyticsAnalytics 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針對用來建立資料存放區連結的 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 檔案中的正確程式。 透過 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 方法前,都會維持連線。

本節內容

另請參閱

SQL Server Native Client (OLE DB)