procedure TForm1.Datenausgeben();
var
LI: TListitem;
weiblich, maennlich, Gesamt, i : integer;
begin
//Zugriff auf die Tabelle über eine Abfrage:
//Sicherheitshalber wird die Abfrage geschlossen ...
adoquery1.Close;
//... und der SQL-Code gelöscht
adoquery1.SQL.Clear;
//... und der neue SQL-Code eingefügt
adoquery1.SQL.add('
Select * from Schueler');
//... und die Abfrage geöffnet:
adoquery1.Open;
//Schleife bis zum Ende der Abfrage
while not adoquery1.Eof
do begin
// Leere Zeile wird ausgegeben
LI := lv_personen.Items.add;
//Daten der Abfrage werden ausgegeben:
LI.Caption := adoquery1.FieldValues['
Nachname'] + '
' + adoquery1.FieldValues['
Vorname'];
LI.subItems.add(adoquery1.FieldValues['
Geschlecht']);
LI.subItems.add(adoquery1.FieldValues['
PLZ']);
LI.subItems.add(adoquery1.FieldValues['
Ort']);
LI.subItems.add(adoquery1.FieldValues['
Adresse']);
//Spring immer einen Datensatz weiter
adoquery1.Next;
end;
adoquery1.close;
adoquery1.SQL.Clear;
//distict = Keine Duplikate
//order by = Sortierung aufsteigend
adoquery1.SQL.add('
Select distinct Ort from Schueler order by Ort');
adoquery1.Open;
while not adoquery1.Eof
do begin
lbox_Wohnort.items.add(adoquery1.FieldValues['
Ort']);
//Spring immer einen Datensatz weiter
adoquery1.Next;
end;
adoquery1.close;
Maennlich := 0;
Weiblich := 0;
gesamt:= lv_Personen.Items.count;
for i := 0
to lv_Personen.Items.Count - 1
do begin
if lv_Personen.Items[i].subitems[0] = '
M'
then
Inc(Maennlich);
if lv_Personen.Items[i].subitems[0] = '
W'
then
Inc(Weiblich);
end;
StatusBar1.Panels[0].Text := '
Gesamt ' + inttostr(gesamt);
StatusBar1.Panels[1].Text := '
Männlich ' + inttostr(maennlich);
StatusBar1.Panels[2].Text := '
Weiblich ' + inttostr(weiblich);
end;
procedure TForm1.Wohnortfilter();
var
AktuellerOrt:
string;
LI: TListItem;
weiblich, maennlich, Gesamt, i : integer;
begin
AktuellerOrt:= lbox_Wohnort.Items[lbox_Wohnort.itemindex];
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.add('
Select * from Schueler where Ort = "' + AktuellerOrt + '
"');
adoquery1.Open;
lv_personen.Items.Clear;
while not adoquery1.Eof
do begin
// Leere Zeile wird ausgegeben
LI := lv_personen.Items.add;
//Daten der Abfrage werden ausgegeben:
LI.Caption := adoquery1.FieldValues['
Nachname'] + '
' + adoquery1.FieldValues['
Vorname'];
LI.subItems.add(adoquery1.FieldValues['
Geschlecht']);
LI.subItems.add(adoquery1.FieldValues['
PLZ']);
LI.subItems.add(adoquery1.FieldValues['
Ort']);
LI.subItems.add(adoquery1.FieldValues['
Adresse']);
//Spring immer einen Datensatz weiter
adoquery1.Next;
end;
adoquery1.close;
Maennlich := 0;
Weiblich := 0;
gesamt:= lv_Personen.Items.count;
for i := 0
to lv_Personen.Items.Count - 1
do begin
if lv_Personen.Items[i].subitems[0] = '
M'
then
Inc(Maennlich);
if lv_Personen.Items[i].subitems[0] = '
W'
then
Inc(Weiblich);
end;
StatusBar1.Panels[0].Text := '
Gesamt ' + inttostr(gesamt);
StatusBar1.Panels[1].Text := '
Männlich ' + inttostr(maennlich);
StatusBar1.Panels[2].Text := '
Weiblich ' + inttostr(weiblich);
end;