SQL Server Native Client Data Source Objects (OLE DB)

van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Belangrijk

De SQL Server Native Client (vaak afgekort SNAC) is verwijderd uit SQL Server 2022 (16.x) en SQL Server Management Studio 19 (SSMS). Zowel de SQL Server Native Client OLE DB-provider (SQLNCLI of SQLNCLI11) als de verouderde Microsoft OLE DB-provider voor SQL Server (SQLOLEDB) worden niet aanbevolen voor nieuwe ontwikkeling. Schakel over naar het nieuwe Microsoft OLE DB-stuurprogramma (MSOLEDBSQL) voor SQL Server.

SQL Server Native Client gebruikt de term databron voor de set OLE DB-interfaces die worden gebruikt om een verbinding met een datawinkel tot stand te brengen, zoals SQL Server. Het aanmaken van een instantie van het databronobject van de provider is de eerste taak van een SQL Server Native Client-consument.

Elke OLE DB-provider verklaart een klasse-identificatie (CLSID) voor zichzelf. De CLSID voor de SQL Server Native Client OLE DB-provider is de C/C++ GUID CLSID_SQLNCLI10 (het symbool SQLNCLI_CLSID zal worden opgelost naar het juiste progid in het sqlncli.h-bestand waar je naar verwijst). Met de CLSID gebruikt de consument de OLE CoCreateInstance-functie om een instantie van het databronobject te produceren.

SQL Server Native Client is een server in uitvoering. Instanties van SQL Server Native Client OLE DB provider-objecten worden aangemaakt met behulp van de CLSCTX_INPROC_SERVER macro om de uitvoerbare context aan te geven.

Het SQL Server Native Client OLE DB provider databronobject stelt de OLE DB-initialisatieinterfaces bloot die de consument in staat stellen verbinding te maken met bestaande SQL Server-databases.

Elke verbinding die wordt gemaakt via de SQL Server Native Client OLE DB-provider stelt automatisch deze opties in:

  • SET ANSI_WARNINGS OP

  • SET ANSI_NULLS OP

  • SET ANSI_PADDING OP

  • SET ANSI_NULL_DFLT_ON OP

  • SET QUOTED_IDENTIFIER OP

  • SET CONCAT_OF_NULL_YIELDS_NULL OP

Dit voorbeeld gebruikt de macro van de klasse-identificatie om een SQL Server Native Client OLE DB provider databronobject te creëren en een verwijzing te krijgen naar de IDBInitialize-interface.

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.  
}  

Met succesvolle creatie van een instantie van een SQL Server Native Client OLE DB provider datasourceobject, kan de consumentenapplicatie doorgaan met het initialiseren van de databron en het aanmaken van sessies. OLE DB-sessies presenteren de interfaces die data-toegang en -manipulatie mogelijk maken.

De SQL Server Native Client OLE DB-provider maakt zijn eerste verbinding met een gespecificeerde instantie van SQL Server als onderdeel van een succesvolle initialisatie van de databron. De verbinding wordt onderhouden zolang er een referentie wordt onderhouden op een databron-initialisatieinterface, of totdat de methode IDBInitialize::Uninitialize wordt aangeroepen.

In deze sectie

Zie ook

SQL Server Native Client (OLE DB)