Dieses Beispiel führt eine einfache parametrisierte Abfrage, die Datensätze mit ein Age-Feld (, die größer als 30 ist) aus einer Tabelle in einer Microsoft Access-Datenbank abruft. Um den Parameter zu unterstützen, muss der Benutzerdatensatz eine zusätzliche Zuordnung verfügen. Der Code verwendet die CCommand -Klasse anstelle der im vorherigen Beispiel durchlaufen eines einfachen Rowsets verwendeten CTable -Klasse.
# include lt;atldbcli.h >
CDataSource Verbindung;
CSession Sitzung;
CCommand < CAccessor <CArtists> > Künstler;
Verbindung.Offen (CLSID_MSDASQL, "NWind", "sa", "");
Sitzung.Open(Connection);
/ / Setzen Sie den Parameter für die Abfrage
Artists.m_nAge = 30;
Künstler.Offen (Sitzung, "wählen Sie * von den Künstlern wo Alter >?");
/ / Daten aus dem Rowset abrufen
während (Künstler.MoveNext() == S_OK)
{
Cout << artists.m_szFirstName;
Cout << artists.m_szLastName;
}
Der Benutzerdatensatz, CArtists , sieht so aus:
klasse CArtists
{
Öffentliche:
/ / Daten
CHAR M_szFirstName [20];
CHAR M_szLastName [30];
kurze M_nAge;
/ / Ausgang Bindung Karte
BEGIN_COLUMN_MAP(CArtists)
COLUMN_ENTRY (1, M_szFirstName)
COLUMN_ENTRY (2, M_szLastName)
COLUMN_ENTRY (3, M_nAge)
END_COLUMN_MAP()
/ / Parameter binden Karte
BEGIN_PARAM_MAP(CArtists)
COLUMN_ENTRY (1, M_nAge)
END_PARAM_MAP
}