Записи пользователя

Записи пользователя обеспечивает структуру кода и данных, представляющая данные столбца для набора строк. Записи пользователя могут быть созданы во время компиляции или во время выполнения. При создании поставщика с помощью мастера объектов ATL, мастер создает запись пользователя по умолчанию, который выглядит так:

класс CWindowsFile:
   государственные WIN32_FIND_DATA
{
общественности:

BEGIN_PROVIDER_COLUMN_MAP(CWindowsFile)
   PROVIDER_COLUMN_ENTRY ("FileAttributes", 1, dwFileAttributes)
   PROVIDER_COLUMN_ENTRY ("FileSizeHigh", 2, nFileSizeHigh)
   PROVIDER_COLUMN_ENTRY ("FileSizeLow", 3, nFileSizeLow)
   PROVIDER_COLUMN_ENTRY ("имя_файла", 4, cFileName)
   PROVIDER_COLUMN_ENTRY ("AltFileName", 5, cAlternateFileName)
END_PROVIDER_COLUMN_MAP()

}

Шаблоны поставщика OLE DB обрабатывают всю специфику OLE DB относительно взаимодействия с клиентом. Для получения необходимых для отклика данных столбца поставщик вызывает функцию GetColumnInfo , которую необходимо поместить в пользовательскую запись:

шаблон lt; класс t >
статический ATLCOLUMNINFO * GetColumnInfo(T* pThis, ULONG* pcCols)
 

PROVIDER_COLUMN_MAP макросы помощь в создании функции GetColumnInfo:

Когда запись пользователя создается во время выполнения, GetColumnInfo использует параметр pThis для получения указателя на экземпляр набора строк или команды. Команд и наборов строк должны поддерживать интерфейс IColumnsInfo , поэтому можно получить сведения о столбцах этого указателя.

Можно явно переопределить GetColumnInfo в пользовательской записи, как показано здесь:

шаблон lt; класс t >
статический ATLCOLUMNINFO * GetColumnInfo(T* pThis, ULONG* pcCols)
 

Это эквивалентно:

статический ATLCOLUMNINFO * GetColumnInfo(CommandClass* pThis, ULONG* pcCols)
статический ATLCOLUMNINFO * GetColumnInfo(RowsetClass* pThis, ULONG* pcCols)

CommandClass и RowsetClass являются команды и набор строк, используется запись пользователя.

Другой пример как переопределить GetColumnInfo в записи пользователя содержатся в разделе Создание простого поставщика только для чтения.

Назад к OLE DB Архитектура шаблона поставщика

Index