In diesem zweiten Datenbank-Tutorial zeige ich, wie man mit Visual C++ und MFC (Microsoft Foundation Classes) eine Datenbankanwendung erstellt, die die Inhalte einer Datenbanktabelle in einer ListBox anzeigt. Um diese Anleitung nicht zu lang werden zu lassen, schreibe ich immer nur die Dinge auf, die verändert werden müssen. Bei Codeabschnitten werden die Teile, die von mir verändert wurden, fett geschrieben.
Suchen Sie mit dem Explorer die MS-Beispieldatenbank "Nordwind". Es kann sein, dass diese nicht installiert ist.
Erstellen Sie ein Programm, welches in eine Listbox eines Dialoges von den Sätzen der Tabelle "Artikel"
die Felder "Artikelnummer" und "Artikelname" einträgt und formatiert anzeigt.


CRecordView auswählen
OnInitialUpdate()-Methode
der View-Klasse, die zu Programmstart aufgerufen wird:
void CDb2View::OnInitialUpdate()
{
m_pSet = &GetDocument()->m_db2Set;
CRecordView::OnInitialUpdate();
GetParentFrame()->RecalcLayout();
ResizeParentToFit();
// Wird für die Formatierung des Strings gebraucht
CString zwsp;
// Auf ersten Datensatz setzen
m_pSet->MoveFirst();
// Alle Datensätze durchlaufen
while (!m_pSet->IsEOF())
{
// Formatierte Ausgabe: "Artikelnummer, Artikelname"
zwsp.Format("%d, %s", m_pSet->m_Artikel_Nr, m_pSet->m_Artikelname);
// In ListBox eintragen
m_list.AddString(zwsp);
// Zum nächsten Datensatz springen
m_pSet->MoveNext();
}
}
Erklärung des Codes:
MoveFirst() - Setzt den Datenbankcursor auf den ersten DatensatzIsEOF() - Überprüft, ob das Ende der Datensätze erreicht istFormat() - Formatiert Artikelnummer und -name zu einem StringAddString() - Fügt den formatierten String zur ListBox hinzuMoveNext() - Springt zum nächsten DatensatzHinweis: Dieses Beispiel zeigt eine alternative Darstellungsweise im Vergleich zu Tutorial 1. Statt eines RecordViews mit Navigationselementen werden hier alle Datensätze auf einmal in einer ListBox angezeigt.