W tym przykładzie wielu akcesory pobierania jeden zestaw danych. Aplikacja może używać wielu akcesorów do optymalizacji dostępu do danych. Zestaw wierszy pobiera jeden blok danych, który może być używany przez wiele akcesorów. (Akcesor jest zdefiniowany w OLE DB użytkownika Records).
# include lt;atldbcli.h >
CDataSource połączenia;
CSession sesji;
CTable < CAccessor <CMultiArtists> > artystów;
/ / Połączenia bazy danych, sesji i akcesorów
połączenie.Otwórz (CLSID_MSDASQL, "NWind", "sa", "");
sesja.Open(Connection);
artystów.Otwórz (sesji, "artystów");
/ / Pobierania danych
podczas (artystów.MoveNext() == wartość S_OK)
{
Cout << artists.m_szFirstName;
Cout << artists.m_szLastName;
artystów.GetData(1); / / Pobierania danych dla innych akcesor
Cout << artists.m_nAge;
}
Jak to wygląda rekordu użytkownika:
klasa CMultiArtists
{
publiczne:
/ / Elementów danych
CHAR m_szFirstName [20];
CHAR m_szLastName [30];
krótkie m_nAge;
/ Wyjście mapie wiążący
BEGIN_ACCESSOR_MAP (CMultiArtists, 2)
BEGIN_ACCESSOR (0, wartość true)
COLUMN_ENTRY (1, m_szFirstName)
COLUMN_ENTRY (2, m_szLastName)
END_ACCESSOR(0)
BEGIN_ACCESSOR (1, wartość false) / / nie akcesor auto
COLUMN_ENTRY (3, m_nAge)
END_ACCESSOR()
END_ACCESSOR_MAP()
}