In diesem Beispiel werden mehrere Accessoren zum Abrufen einer Reihe von Daten verwendet. Eine Anwendung kann mehrere Accessoren verwenden, um den Datenzugriff optimieren. Das Rowset Ruft einen Block von Daten, die von mehrere Accessoren verwendet werden können. (Der-Accessor wird in OLE DB-Benutzer-Datensätzedefiniert.)
# include lt;atldbcli.h >
CDataSource Verbindung;
CSession Sitzung;
CTable < CAccessor <CMultiArtists> > Künstler;
/ / Schließen Sie die Datenbank, Sitzung und Accessoren
Verbindung.Offen (CLSID_MSDASQL, "NWind", "sa", "");
Sitzung.Open(Connection);
Künstler.Open (Sitzung, "Künstler");
/ / Daten abrufen
während (Künstler.MoveNext() == S_OK)
{
Cout << artists.m_szFirstName;
Cout << artists.m_szLastName;
Künstler.GetData(1); / / Abrufen von Daten für andere Accessor
Cout << artists.m_nAge;
}
Sieht wie folgt aus der Benutzerdatensatz:
klasse CMultiArtists
{
Öffentliche:
/ / Daten
CHAR M_szFirstName [20];
CHAR M_szLastName [30];
kurze M_nAge;
/ / Ausgang Bindung Karte
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) / / kein Autoaccessor
COLUMN_ENTRY (3, M_nAge)
END_ACCESSOR()
END_ACCESSOR_MAP()
}