CCustomRowset (CustomRS.H)

Der Assistent generiert einen Eintrag für das Rowset-Objekt. In diesem Fall wird er aufgerufen CCustomRowset. Die CCustomRowset Klasse erbt von einer OLE DB-Anbieterklasse, CRowsetImpldie alle erforderlichen Schnittstellen für das Rowset-Objekt implementiert. Der folgende Code zeigt die Vererbungskette für CRowsetImpl:

template <class T, class Storage, class CreatorClass,
   class ArrayType = CAtlArray<Storage>>
class CMyRowsetImpl:
   public CRowsetImpl<T, Storage, CreatorClass, ArrayType,
      CSimpleRow, IRowsetLocateImpl< T >>

CRowsetImpl verwendet außerdem die IAccessor Und IColumnsInfo Schnittstellen. Sie verwendet diese Schnittstellen für Ausgabefelder in Tabellen. Die Klasse stellt außerdem eine Implementierung bereit, für IRowsetIdentitydie der Consumer ermitteln kann, ob zwei Zeilen identisch sind. Die IRowsetInfo Schnittstelle implementiert Eigenschaften für das Rowset-Objekt. Die IConvertType Schnittstelle ermöglicht es dem Anbieter, Unterschiede zwischen Datentypen zu lösen, die vom Verbraucher angefordert werden, und denen, die vom Anbieter verwendet werden.

Die IRowset Schnittstelle verarbeitet tatsächlich den Datenabruf. Der Consumer ruft zuerst eine Methode auf, die aufgerufen wird GetNextRows , um ein Handle an eine Zeile zurückzugeben, die als "ein HROW" bezeichnet wird. Der Consumer ruft IRowset::GetData dann mit dieser HROW die angeforderten Daten ab.

CRowsetImpl es werden auch mehrere Vorlagenparameter benötigt. Mit diesen Parametern können Sie bestimmen, wie die CRowsetImpl Klasse Daten verarbeitet. Mit dem ArrayType Argument können Sie bestimmen, welcher Speichermechanismus zum Speichern der Zeilendaten verwendet wird. Der RowClass-Parameter gibt an, welche Klasse eine HROW.

Mit dem RowsetInterface-Parameter können Sie auch die IRowsetLocate Schnittstelle verwenden IRowsetScroll . Die IRowsetLocate beiden IRowsetScroll Schnittstellen erben von IRowset. Daher müssen die OLE DB-Anbietervorlagen eine spezielle Behandlung für diese Schnittstellen bereitstellen. Wenn Sie eine dieser Schnittstellen verwenden möchten, müssen Sie diesen Parameter verwenden.

Siehe auch

Vom Anbieter-Assistenten generierte Dateien