如何在标签中显示已过滤的记录数

时间:2013-10-01 20:30:10

标签: delphi delphi-7

我正在使用delphi 7的访问数据库,我有已注册学生的记录。我想要一个代码,可以在表格的标签上显示数据库中的男性学生人数,也可以在另一个标签上显示女性学生。访问数据库中的字段名称是性别,而数据类型是男性和女性。因此,如果男性学生的数量是20和30位女性,它应该在标签上显示20个,在另一个标签上显示30个女性。有一个简单的代码,我可以使用带有数据源1的adoquery1来执行此操作,我用它来保存记录在数据库上? 字段名称包括 名字其他名称和性别

1 个答案:

答案 0 :(得分:1)

这样的事情应该可以解决问题。

AdoQuery1.Active:= false;
AdoQuery1.SQL.Text:= ' select gender, count(*) as cnt from atable '
                    +' where something = 10 '
                    +' group by gender '
                    +' order by (gender = "M") ';
AdoQuery1.Active:= true;
DataSrc:= TDataSource.Create(Self);
DataSrc.DataSet:= AdoQuery1;
DataSrc.Enabled:= true;
DataSrc.FindFirst;
if lowercase((DataSrc.FieldByName('gender')) = 'm' then begin
  LabelMale.Caption:= DataSrc.FieldByName('cnt').AsString;
  Success:= DataSrc.FindNext;
end
else LabelMale.Caption:= 'none';
if (Success) and (lowercase((DataSrc.FieldByName('gender')) = 'f') then begin
  LabelFemale.Caption:= DataSrc.FieldByName('cnt').AsString;
end
else LabelFemale.Caption:= 'none';