В этом примере используется несколько методов доступа для получения одного набора данных. Приложение может использовать несколько методов доступа для оптимизации доступа к данным. Один блок данных, которые могут быть использованы несколько методов доступа извлекает набор строк. (Метод доступа определяется в Записи пользователя OLE DB).
# include lt;atldbcli.h >
CDataSource связь;
CSession сессии;
CTable < CAccessor <CMultiArtists> > художники;
/ / Подключить базу данных, сессии и методы доступа
связь.Открытый (CLSID_MSDASQL, «NWind», «СА», "");
сессия.Open(Connection);
художники.Открытый (сессия, «художники»);
/ / Получить данные
во время (художники.MoveNext() == S_OK)
{
Cout << artists.m_szFirstName;
Cout << artists.m_szLastName;
художники.GetData(1); / / Извлечения данных для других методов доступа
Cout << artists.m_nAge;
}
Записи пользователя выглядит следующим образом:
класс CMultiArtists
{
общественности:
/ / Элементы данных
Чар m_szFirstName [20];
Чар m_szLastName [30];
короткие m_nAge;
/ / вывод привязки карты
BEGIN_ACCESSOR_MAP (CMultiArtists, 2)
BEGIN_ACCESSOR (0, правда)
COLUMN_ENTRY (1, m_szFirstName)
COLUMN_ENTRY (2, m_szLastName)
END_ACCESSOR(0)
BEGIN_ACCESSOR (1, false) / / не автоматический метод доступа
COLUMN_ENTRY (3, m_nAge)
END_ACCESSOR()
END_ACCESSOR_MAP()
}