Datenquellenobjekte (OLE DB)

SQL Server Native Client verwendet den Begriff "Datenquelle" für die Gruppe der OLE DB-Schnittstellen, die zum Herstellen einer Verknüpfung zum 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 SQL Server Native Client OLE DB-Anbieter ist die C/C++-GUID CLSID_SQLNCLI10 (das Symbol SQLNCLI_CLSID wird in die korrekte progid in der Datei sqlncli.h aufgelöst, die Sie referenzieren). 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 Datenquellenobjekt des SQL Server Native Client OLE DB-Anbieters macht die OLE DB-Initialisierungsschnittstellen verfügbar, die Consumern ermöglichen, Verbindungen zu vorhandenen SQL Server-Datenbanken herzustellen.

Jede durch den SQL Server Native Client OLE DB-Anbieter hergestellte Verbindung 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

Dieses Beispiel verwendet das Klassenbezeichnermakro zum Erstellen eines SQL Server Native Client OLE DB-Anbieter-Datenquellenobjekts und zum Abrufen einer Referenz auf die IDBInitialize-Schnittstelle.

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 der erfolgreichen Erstellung einer Instanz eines SQL Server Native Client OLE DB-Anbieter-Datenquellenobjekts kann die Consumeranwendung fortfahren, indem die Datenquelle initialisiert und Sitzungen erstellt werden. OLE DB-Sitzungen präsentieren die Schnittstellen, die Datenzugriff und -bearbeitung ermöglichen.

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