TADOTable - 如何一次统计特定记录?

时间:2014-09-19 20:37:52

标签: database delphi ado c++builder vcl

我的数据库表(客户)有一个字段“活动”(YesNo)。我正在使用TADOTable来处理这个表,我希望在我的应用程序的状态栏中有一个统计信息,说明有多少客户是活跃的,有多少是不活跃的。我总是可以通过写这个来了解我现在的客户是否活跃:

bool isActive = CustomerADOTable->FieldByName("Active")->AsBoolean;

但是,如何一次检查所有记录?或者我真的只需要使用TADOQuery和sql语句吗?

2 个答案:

答案 0 :(得分:2)

您要么必须运行查询,要么循环遍历表中的所有记录,并保留有多少Active设置为true的计数。

除非你的记录很少,否则查询会明显加快。查询是正确的方法(tm)。它会扩展得更好。

答案 1 :(得分:1)

要避免循环和自己的查询,可以使用Filter属性。

begin
  Showmessage(IntToStr(DS.RecordCount));
  DS.Filter := 'Active=true';
  DS.Filtered := true;
  Showmessage(IntToStr(DS.RecordCount));
  DS.Filtered := false;
end;