Запис користувача

Запис користувача забезпечує код і дані структури, що представляє стовпця даних для набір рядків. Запис користувача можна створити під час компіляції, або під час виконання. Під час створення провайдера за допомогою майстра об'єкт 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 отримувати вказівник на зразок набір рядків або команду. Команди та rowsets має підтримувати 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 у записі користувача див створення простих Read-Only постачальника.

Назад до архітектура шаблон OLE DB постачальника

Index