我的数据库表(客户)有一个字段“活动”(YesNo)。我正在使用TADOTable来处理这个表,我希望在我的应用程序的状态栏中有一个统计信息,说明有多少客户是活跃的,有多少是不活跃的。我总是可以通过写这个来了解我现在的客户是否活跃:
bool isActive = CustomerADOTable->FieldByName("Active")->AsBoolean;
但是,如何一次检查所有记录?或者我真的只需要使用TADOQuery和sql语句吗?
答案 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;