CCustomSession (CustomSess.H)
CustomSess.H enthält die Deklaration und Implementierung für das OLE DB-Sitzungsobjekt. Das Datenquellenobjekt erstellt das Sitzungsobjekt und stellt eine Unterhaltung zwischen einem Consumer und einem Anbieter dar. Mehrere gleichzeitige Sitzungen können für eine Datenquelle geöffnet werden. Die Vererbungsliste für CCustomSession
Folgendes:
/////////////////////////////////////////////////////////////////////////
// CCustomSession
class ATL_NO_VTABLE CCustomSession :
public CComObjectRootEx<CComSingleThreadModel>,
public IGetDataSourceImpl<CCustomSession>,
public IOpenRowsetImpl<CCustomSession>,
public ISessionPropertiesImpl<CCustomSession>,
public IObjectWithSiteSessionImpl<CCustomSession>,
public IDBSchemaRowsetImpl<CCustomSession>,
public IDBCreateCommandImpl<CCustomSession, CCustomCommand>
Das Sitzungsobjekt erbt von IGetDataSource
, IOpenRowset
, , ISessionProperties
und IDBCreateCommand
. Die IGetDataSource
Schnittstelle ermöglicht es einer Sitzung, die Datenquelle abzurufen, die sie erstellt hat. Dies ist nützlich, wenn Sie Eigenschaften aus der Datenquelle abrufen müssen, die Sie erstellt haben, oder andere Informationen, die die Datenquelle bereitstellen kann. Die ISessionProperties
Schnittstelle behandelt alle Eigenschaften für die Sitzung. Die IOpenRowset
Und IDBCreateCommand
Schnittstellen werden verwendet, um die Datenbankarbeit auszuführen. Wenn der Anbieter Befehle unterstützt, implementiert er die IDBCreateCommand
Schnittstelle. Es wird verwendet, um das Befehlsobjekt zu erstellen, das Befehle ausführen kann. Der Anbieter implementiert immer das IOpenRowset
Objekt. Es wird verwendet, um ein Rowset von einem Anbieter zu generieren. Es ist ein Standard-Rowset (z. B "select * from mytable"
. ) von einem Anbieter.
Der Assistent generiert außerdem drei Sitzungsklassen: CCustomSessionColSchema
, CCustomSessionPTSchema
, und CCustomSessionTRSchema
. Diese Sitzungen werden für Schema-Rowsets verwendet. Schema-Rowsets ermöglichen es dem Anbieter, Metadaten an den Consumer zurückzugeben, ohne dass der Verbraucher eine Abfrage ausführen oder Daten abrufen muss. Das Abrufen von Metadaten kann viel schneller sein als das Auffinden der Funktionen eines Anbieters.
Die OLE DB-Spezifikation erfordert, dass Anbieter, die die IDBSchemaRowset
Schnittstelle implementieren, drei Schema-Rowsettypen unterstützen: DBSCHEMA_COLUMNS, DBSCHEMA_PROVIDER_TYPES und DBSCHEMA_TABLES. Der Assistent generiert Implementierungen für jedes Schema-Rowset. Jede vom Assistenten generierte Klasse enthält eine Execute
Methode. In dieser Execute
Methode können Sie Daten an den Anbieter zurückgeben, welche Tabellen, Spalten und Datentypen Sie unterstützen. Diese Daten werden zur Kompilierungszeit bekannt.