Datenquellenobjekte (OLE DB)
SQL Server Native Client verwendet den Begriff Datenquelle für den Satz von OLE DB-Schnittstellen, die zum Herstellen einer Verknüpfung mit einem Datenspeicher verwendet werden, z. B. SQL Server. Das Erstellen eines instance 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-Datenquellenobjekt des OLE DB-Anbieters macht die OLE DB-Initialisierungsschnittstellen verfügbar, die es dem Consumer ermöglichen, eine Verbindung mit vorhandenen SQL Server Datenbanken herzustellen.
Jede Verbindung, die über den SQL Server Native Client OLE DB-Anbieter 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 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 eines instance 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 im Rahmen einer erfolgreichen Datenquelleninitialisierung seine erste Verbindung mit einer angegebenen instance von SQL Server her. Die Verbindung wird beibehalten, solange eine Referenz auf einer beliebigen Datenquellen-Initialisierungsschnittstelle beibehalten wird oder bis die Methode IDBInitialize::Uninitialize aufgerufen wird.