Questo esempio utilizza più funzioni di accesso per recuperare un set di dati. Un'applicazione può utilizzare più funzioni di accesso per ottimizzare l'accesso ai dati. Il set di righe recupera un blocco di dati che possono essere utilizzati da più funzioni di accesso. (La funzione di accesso è definito in Record utente OLE DB).
# include lt;atldbcli.h >
CDataSource connessione;
CSession sessione;
CTable < CAccessor <CMultiArtists> > artisti;
/ / Collegare il database, di sessione e le funzioni di accesso
connessione.Aperto (CLSID_MSDASQL, "NWind", "sa", "");
sessione.Open(Connection);
artisti.Open (sessione, "artisti");
/ / Recupera i dati
mentre (artisti.MoveNext () = = S_OK)
{
cout << artists.m_szFirstName;
cout << artists.m_szLastName;
artisti.GetData(1); / / Recupera i dati per altre funzioni di accesso
cout << artists.m_nAge;
}
Record utente assomiglia a questo:
classe CMultiArtists
{
pubblica:
/ / Elementi di dati
CHAR m_szFirstName [20];
CHAR m_szLastName [30];
breve m_nAge;
/ / output mappa associazione
BEGIN_ACCESSOR_MAP (CMultiArtists, 2)
BEGIN_ACCESSOR vero (0)
COLUMN_ENTRY, m_szFirstName (1)
COLUMN_ENTRY, m_szLastName (2)
END_ACCESSOR(0)
BEGIN_ACCESSOR falsi (1) / / non una funzione di accesso automatico
COLUMN_ENTRY, m_nAge (3)
END_ACCESSOR()
END_ACCESSOR_MAP()
}