SQL Server Native Client Data Source Objects (OLE DB)
Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance Azure Synapse Analytics Analytics 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 die Ausdrucksdatenquelle für die Gruppe von OLE DB-Schnittstellen, die zum Herstellen einer Verknüpfung mit einem Datenspeicher verwendet werden, 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 OLE DB-Anbieter des SQL Server Native Client ist die C/C++-GUID CLSID_SQLNCLI10 (das Symbol SQLNCLI_CLSID wird in der datei sqlncli.h, auf die Sie verweisen, in den richtigen Progid aufgelöst). Mit der CLSID verwendet der Consumer die OLE-Funktion CoCreateInstance zum Erstellen einer Instanz des Datenquellenobjekts.
SQL Server Native Client ist ein prozessinterner Server. Instanzen von SQL Server Native Client OLE DB-Anbieterobjekten werden mithilfe des CLSCTX_INPROC_SERVER Makros erstellt, um den ausführbaren Kontext anzugeben.
Das OLE DB-Anbieterquellobjekt des SQL Server Native Client macht die OLE DB-Initialisierungsschnittstellen verfügbar, mit denen der Consumer eine Verbindung mit vorhandenen SQL Server-Datenbanken herstellen kann.
Jede Verbindung, die über den OLE DB-Anbieter des SQL Server Native Client hergestellt wird, legt diese Optionen automatisch fest:
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 OLE DB-Datenquellenobjekt des SQL Server Native Client-Anbieters 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.
}
Mit erfolgreicher Erstellung einer Instanz eines OLE DB-Anbieterobjekts des SQL Server Native Client-Anbieters kann die Consumeranwendung fortfahren, indem sie die Datenquelle initialisieren und Sitzungen erstellen. OLE DB-Sitzungen präsentieren die Schnittstellen, die Datenzugriff und -bearbeitung ermöglichen.
Der OLE DB-Anbieter von SQL Server Native Client stellt die erste Verbindung zu einer angegebenen Instanz von SQL Server als Teil einer erfolgreichen Initialisierung der Datenquelle dar. Die Verbindung wird beibehalten, solange eine Referenz auf einer beliebigen Datenquellen-Initialisierungsschnittstelle beibehalten wird oder bis die Methode IDBInitialize::Uninitialize aufgerufen wird.