CCustomRowset (CustomRS.H)
Мастер создает запись для объекта набора строк. В этом случае это называется CCustomRowset
. Класс CCustomRowset
наследует от класса поставщика OLE DB, который CRowsetImpl
реализует все необходимые интерфейсы для объекта набора строк. В следующем коде показана цепочка наследования для CRowsetImpl
:
template <class T, class Storage, class CreatorClass,
class ArrayType = CAtlArray<Storage>>
class CMyRowsetImpl:
public CRowsetImpl<T, Storage, CreatorClass, ArrayType,
CSimpleRow, IRowsetLocateImpl< T >>
CRowsetImpl
также использует IAccessor
интерфейсы и IColumnsInfo
интерфейсы. Он использует эти интерфейсы для выходных полей в таблицах. Класс также предоставляет реализацию, IRowsetIdentity
которая позволяет потребителю определить, совпадают ли две строки. Интерфейс IRowsetInfo
реализует свойства для объекта набора строк. Интерфейс IConvertType
позволяет поставщику разрешать различия между типами данных, запрашиваемыми потребителем, и теми, которые используются поставщиком.
Интерфейс IRowset
фактически обрабатывает получение данных. Потребитель сначала вызывает метод, вызываемый GetNextRows
для возврата дескриптора в строку, которая называется HROW
. Затем потребитель вызывает IRowset::GetData
это HROW
для получения запрошенных данных.
CRowsetImpl
также принимает несколько параметров шаблона. Эти параметры позволяют определить, как CRowsetImpl
класс обрабатывает данные. Аргумент ArrayType
позволяет определить, какой механизм хранения используется для хранения данных строки. Параметр RowClass указывает, какой класс содержит HROW
объект.
Параметр RowsetInterface позволяет также использовать IRowsetLocate
или IRowsetScroll
интерфейс. IRowsetScroll
И IRowsetLocate
интерфейсы наследуются от IRowset
. Поэтому шаблоны поставщиков OLE DB должны обеспечивать специальную обработку этих интерфейсов. Если вы хотите использовать любой из этих интерфейсов, необходимо использовать этот параметр.