Cet exemple utilise plusieurs accesseurs pour récupérer un ensemble de données. Une application peut utiliser des accesseurs multiples afin d'optimiser l'accès aux données. L'ensemble de lignes récupère un bloc de données qui peuvent être utilisés par plusieurs accesseurs. (L'accesseur est défini dans OLE DB utilisateur Records).
# include lt;atldbcli.h >
Connexion CDataSource ;
CSession session ;
CTable < CAccessor <CMultiArtists> > artistes ;
/ / Se connecter à la base de données, session et les accesseurs
connexion.Ouvert (CLSID_MSDASQL, « NWind », « sa », "") ;
session.Open(Connection) ;
artistes.Ouvrir session (« artistes ») ;
/ / Extraire les données
alors que (artistes.MoveNext() == S_OK)
{
COUT << artists.m_szFirstName ;
COUT << artists.m_szLastName ;
artistes.GetData(1) ; / / Extraire des données pour les autre d'accesseur
COUT << artists.m_nAge ;
}
L'enregistrement utilisateur ressemble à ceci:
classe CMultiArtists
{
public :
/ / Éléments de données
CHAR m_szFirstName [20] ;
CHAR m_szLastName [30] ;
m_nAge courtes ;
/ / sortie carte de liaison
BEGIN_ACCESSOR_MAP (CMultiArtists, 2)
BEGIN_ACCESSOR (0, true)
COLUMN_ENTRY (1, m_szFirstName)
COLUMN_ENTRY (2, m_szLastName)
END_ACCESSOR(0)
BEGIN_ACCESSOR (1, false) / / pas un accesseur automatique
COLUMN_ENTRY (3, m_nAge)
END_ACCESSOR()
END_ACCESSOR_MAP()
}
Retour à des scénarios courants OLE DB consommation (exemples)