Przechowywanie ciągów w dostawcy bazy danych OLE

W MyProviderRS.h, Kreator obiektu ATL tworzy domyślny o nazwie rekordu użytkownika CWindowsFile . Aby obsługiwać dwa ciągi, Edytuj CWindowsFile lub dodać własne rekordu użytkownika, jak pokazano tutaj:

////////////////////////////////////////////////////////////////////////
Klasa CAgentMan: WIN32_FIND_DATA publicznych
   DWORD dwBookmark; nbsp;             / / Add to
   TCHAR szCommand [256];          / / Add to
   TCHAR szText [256];             / / Add to
   TCHAR szCommand2 [256];         / / Add to
   TCHAR szText2 [256];            / / Add to
{
publiczne:
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 ("nazwa_pliku", 4, cFileName)
   PROVIDER_COLUMN_ENTRY ("AltFileName", 5, cAlternateFileName)
END_PROVIDER_COLUMN_MAP()
   bool operatorem == (const CAgentMan & am) / / jest to opcjonalny {}
      Zwraca (lstrcmpi (cFileName, wf.cFileName) == 0);
   }
}

Członkowie danych szCommand i szText stanowią dwa ciągi, z szCommand2 i szText2 zapewnienie dodatkowych kolumn, jeśli jest to konieczne. Członek danych dwBookmark nie jest potrzebny dla tego dostawcy po prostu tylko do odczytu, ale będzie można później do dodania interfejsu IRowsetLocate. Operator == porównuje wystąpień. (Wykonania tego operatora jest opcjonalny).

Aby obsługiwać dwa ciągi, PROVIDER_COLUMN_MAP wymaga także modyfikacji. Zastąpić PROVIDER_COLUMN_MAP pokazanym powyżej z tutaj pokazany:

BEGI&N_PROVIDER_COLUMN_MAP()
 nbsp;  PROVIDER_COLUMN_ENTRY_STR(OLESTR("Command"), 1, 256, GUID_NULL, CAgentMan, szCommand)
    PROVIDER_COLUMN_ENTRY_STR (OLESTR ("tekst"), 2, 256, GUID_NULL, CAgentMan, szText) PROVIDER_COLUMN_ENTRY_STR(OLESTR("Command2"), 3, 256, GUID_NULL, CAgentMan, szCommand2)
    PROVIDER_COLUMN_ENTRY_STR (OLESTR ("Tekst2"), 4, 256, GUID_NULL, CAgentMan, szText2)
END_PROVIDER_COLUMN_MAP()

Gdy odbywa się to, dostawca należy skompilować i uruchomić. Aby przetestować dostawcy, trzeba konsumenta z pasującymi funkcjonalność. Wykonania prostych konsumenta ilustruje sposób tworzenia takich konsumentów badania. Uruchom konsumenta badania z dostawcą. Zweryfikuj, że konsument badania pobiera prawidłowe ciągi od dostawcy, po kliknięciu przycisku Uruchom w oknie dialogowym badania konsumenckie.

Po przetestowaniu pomyślnie dostawcą, warto zwiększyć jego funkcjonalność wdrażając dodatkowe interfejsów. Przykładem jest przedstawione w następnej sekcji, wzmocnienie proste dostawcy otwieraniu.

Index