SQL Server Natywne Obiekty Danych Klienta (OLE DB)

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Important

SQL Server Native Client (często skracany jako SNAC) został usunięty z SQL Server 2022 (16.x) i SQL Server Management Studio 19 (SSMS). Zarówno dostawca OLE DB klienta natywnego programu SQL Server (SQLNCLI lub SQLNCLI11), jak i starszy dostawca MICROSOFT OLE DB dla programu SQL Server (SQLOLEDB) nie są zalecane w przypadku nowego programowania. Przełącz się na nowy sterownik Microsoft OLE DB (MSOLEDBSQL) dla programu SQL Server na przyszłość.

Natywny klient SQL Server używa terminu źródło danych dla zestawu interfejsów OLE DB służących do nawiązania łącza z magazynem danych, takim jak SQL Server. Utworzenie instancji obiektu źródła danych dostawcy jest pierwszym zadaniem konsumenta SQL Server Native Client.

Każdy dostawca OLE DB deklaruje dla siebie identyfikator klasy (CLSID). CLSID dla dostawcy SQL Server Native Client OLE DB to CLSID_SQLNCLI10 GUID C/C++ (symbol SQLNCLI_CLSID rozwiąże się do poprawnego progid w pliku sqlncli.h, do którego się odwołujesz). W przypadku CLSID użytkownik korzysta z funkcji OLE CoCreateInstance do wytworzenia instancji obiektu źródła danych.

SQL Server Native Client to serwer w trakcie procesu. Instancje obiektów dostawcy SQL Server Native Client OLE DB są tworzone za pomocą makra CLSCTX_INPROC_SERVER, aby wskazać kontekst wykonywalny.

Obiekt źródłowy danych dostawcy OLE DB Native Client OLE w SQL Server udostępnia interfejsy inicjalizacyjne OLE DB, które pozwalają użytkownikowi łączyć się z istniejącymi bazami danych SQL Server.

Każde połączenie nawiązane przez dostawcę natywnego klienta OLE DB SQL Server automatycznie ustawia następujące opcje:

  • 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 WŁĄCZONY

Ten przykład wykorzystuje makro identyfikatora klasy do utworzenia obiektu źródłowego dostawcy OLE DB dla natywnego klienta SQL Server oraz uzyskania odniesienia do jego interfejsu 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.  
}  

Po pomyślnym utworzeniu instancji obiektu źródłowego dostawcy OLE DB dla natywnego klienta SQL Server, aplikacja konsumencka może kontynuować proces inicjowania źródła danych i tworzenia sesji. Sesje OLE DB prezentują interfejsy umożliwiające dostęp do danych i ich manipulację.

Dostawca natywnego klienta OLE DB SQL Server nawiązuje pierwsze połączenie z określoną instancją SQL Server w ramach pomyślnej inicjalizacji źródła danych. Połączenie jest utrzymywane tak długo, jak referencja jest utrzymwana na dowolnym interfejsie inicjalizacji źródła danych lub do momentu wywołania metody IDBInitialize::Uninitialize .

W tej Sekcji

Zobacz też

Klient natywny programu SQL Server (OLE DB)