SQL Server Native Client Datenquellenobjekte (OLE DB)

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Wichtig

Der SQL Server Native Client (häufig abgekürzt mit SNAC) wurde aus SQL Server 2022 (16.x) und SQL Server Management Studio 19 (SSMS) entfernt. Sowohl der OLE DB-Anbieter für den SQL Server Native Client (SQLNCLI oder SQLNCLI11) als auch der Microsoft OLE DB-Legacyanbieter für SQL Server (SQLOLEDB) werden für Neuentwicklungen nicht empfohlen. Verwenden Sie in Zukunft den neuen Microsoft OLE DB-Treiber für SQL Server (MSOLEDBSQL).

SQL Server Native Client verwendet den Begriff Datenquelle für den Satz von OLE DB-Schnittstellen, die verwendet werden, um eine Verknüpfung mit einem Datenspeicher herzustellen, z. B. SQL Server. Das Erstellen einer Instanz des Datenquellenobjekts des Anbieters ist die erste Aufgabe eines SQL Server Native Client Consumers.

Jeder OLE DB-Anbieter deklariert einen Klassenbezeichner (CLSID) für sich. Die CLSID für den SQL Server Native Client OLE DB-Anbieter ist die C/C++-GUID-CLSID_SQLNCLI10 (das Symbol SQLNCLI_CLSID wird in die richtige Progid in der Datei sqlncli.h aufgelöst, auf die Sie verweisen). Mit der CLSID verwendet der Consumer die OLE-Funktion CoCreateInstance zum Erstellen einer Instanz des Datenquellenobjekts.

SQL Server Native Client ist ein Prozessserver. Instanzen von SQL Server Native Client OLE DB-Anbieterobjekten werden mithilfe des makros CLSCTX_INPROC_SERVER erstellt, um den ausführbaren Kontext anzugeben.

Das SQL Server Native Client Datenquellenobjekts des OLE DB-Anbieters macht die OLE DB-Initialisierungsschnittstellen verfügbar, mit denen der Consumer eine Verbindung mit vorhandenen SQL Server Datenbanken herstellen kann.

Bei jeder Verbindung, die über den SQL Server Native Client OLE DB-Anbieter hergestellt wird, werden diese Optionen automatisch festgelegt:

  • 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

In diesem Beispiel wird das Klassenbezeichnermakro verwendet, um ein SQL Server Native Client OLE DB-Anbieterdatenquellobjekt zu erstellen und einen Verweis auf die IDBInitialize-Schnittstelle abzurufen.

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

Nach erfolgreicher Erstellung einer Instanz eines SQL Server Native Client OLE DB-Anbieterdatenquellobjekts kann die Consumeranwendung fortfahren, indem sie die Datenquelle initialisiert und Sitzungen erstellt. OLE DB-Sitzungen präsentieren die Schnittstellen, die Datenzugriff und -bearbeitung ermöglichen.

Der SQL Server Native Client OLE DB-Anbieter stellt seine erste Verbindung mit einer angegebenen Instanz von SQL Server im Rahmen einer erfolgreichen Datenquelleninitialisierung her. Die Verbindung wird beibehalten, solange eine Referenz auf einer beliebigen Datenquellen-Initialisierungsschnittstelle beibehalten wird oder bis die Methode IDBInitialize::Uninitialize aufgerufen wird.

In diesem Abschnitt

Weitere Informationen

SQL Server Native Client (OLE DB)