SQL Server Native Client 數據源物件 (OLE DB)
適用於:SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體 Azure Synapse 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 會針對用來建立數據存放區連結的 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方法為止,就會維護連接。