Зберігання змінних у постачальника OLE DB

У MyProviderRS.h, ATL об'єкт Майстер створює за замовчуванням, користувачем запис під назвою CWindowsFile . Обробляти два струни, або змінити CWindowsFile або додати власний користувача запису, як показано тут:

////////////////////////////////////////////////////////////////////////
клас CAgentMan: Громадська WIN32_FIND_DATA
   DWORD dwBookmark; nbsp;             / / Додати до цього
   TCHAR szCommand [256];          / / Додати до цього
   TCHAR szText [256];             / / Додати до цього
   TCHAR szCommand2 [256];         / / Додати до цього
   TCHAR szText2 [256];            / / Додати до цього
{
готелю:
BEGIN_PROVIDER_COLUMN_MAP(CAgentMan)
   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()
   bool оператор = = (константа CAgentMan & ранку) / / це необов'язковий {
      повернення (lstrcmpi (cFileName, wf.cFileName) = = 0);
   }
}

Члени дані szCommand і szText представляють два рядки, з szCommand2 та szText2 надають додаткові стовпці, якщо необхідно. Компонент даних dwBookmark не потрібна для цього постачальника просто лише для читання, але буде використовуватися пізніше Додати IRowsetLocate інтерфейсом. , = = Оператор порівнює екземплярів. (Втілення цього оператора є необов'язковим.)

Для підтримки двох рядків, PROVIDER_COLUMN_MAP потребує модифікації, як добре. Замінити PROVIDER_COLUMN_MAP показано вище з наведеного тут:

BEGI&N_PROVIDER_COLUMN_MAP()
 nbsp;  PROVIDER_COLUMN_ENTRY_STR(OLESTR("Command"), 1, 256, GUID_NULL, CAgentMan, szCommand)
    PROVIDER_COLUMN_ENTRY_STR (OLESTR ("Текст"), 2, 256, GUID_NULL, CAgentMan, szText) PROVIDER_COLUMN_ENTRY_STR(OLESTR("Command2"), 3, 256, GUID_NULL, CAgentMan, szCommand2)
    PROVIDER_COLUMN_ENTRY_STR (OLESTR ("Текст2"), 4, 256, GUID_NULL, CAgentMan, szText2)
END_PROVIDER_COLUMN_MAP()

Коли це буде зроблено, постачальника повинна бути готова скомпілювати та запустити. Для перевірки провайдера, ви повинні споживачів з відповідними функціональність. Впровадження простий споживача показує, як створити тест споживача. Запустити тест споживачів з провайдером. Переконайтеся, що споживчі тестування отримує належної рядків від постачальника, після натискання кнопки запустити тест споживачів у діалоговому вікні.

Як тільки ви успішно тестування постачальника послуг, ви можете підвищують його функціональність шляхом впровадження додаткових інтерфейсів. Приклад наведено в наступному розділі, підвищення на зберігання простий Read-Only.

Index