Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi 如何在标签中显示已筛选记录的数量_Delphi_Delphi 7 - Fatal编程技术网

Delphi 如何在标签中显示已筛选记录的数量

Delphi 如何在标签中显示已筛选记录的数量,delphi,delphi-7,Delphi,Delphi 7,我正在使用delphi 7的access数据库,我有注册学生的记录。我想要一个代码,可以在表格的标签上显示数据库中的男生人数,也可以在另一个标签上显示女生人数。access数据库中的字段名为性别,而数据类型为男性和女性。因此,如果男生的数量是20,女生的数量是30,那么应该在一个标签上显示20,在另一个标签上显示30。是否有一个简单的代码,我可以使用一个adoquery1和一个我用来保存数据库记录的数据源1来做到这一点? 字段名包括 Firstname Othername and Gender像

我正在使用delphi 7的access数据库,我有注册学生的记录。我想要一个代码,可以在表格的标签上显示数据库中的男生人数,也可以在另一个标签上显示女生人数。access数据库中的字段名为性别,而数据类型为男性和女性。因此,如果男生的数量是20,女生的数量是30,那么应该在一个标签上显示20,在另一个标签上显示30。是否有一个简单的代码,我可以使用一个adoquery1和一个我用来保存数据库记录的数据源1来做到这一点? 字段名包括
Firstname Othername and Gender

像这样的东西应该可以奏效

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';

是的,有一种方法可以通过使用数据源的adoquery来实现这一点。但是,我无法帮助您,因为您没有提供有关数据库模式的信息,没有提供示例数据,没有提供希望获得的输出示例,也没有尝试自己编写SQL来实现这一点。(这是一个使用
COUNT
groupby
的简单查询,但如果没有数据库模式的信息,很难提供示例。)请提供更具体的信息,以便我们尝试帮助您。从我们坐的地方看不到你的屏幕。