如何把统计出符合条件的记录数赋值给一个变量?
procedure TForm1.Button1Click(Sender: TObject);
begin
with query1 do
begin
Close;
SQL.Clear ;
SQL.Add('select count(distinct sex) from student.db');
SQL.Add('where sex=:sex' );
ParamByName('sex').AsString := Trim(edit1.text);
Open;
end;
label1.Caption := query1.Fields[0].value;
end;
我想要得到的答案是有4条记录的,可label1.caption显示出来的是1,怎么回事?
问题点数:0、回复次数:6Top
1 楼tonycjl(陈欣)回复于 2003-09-01 20:59:01 得分 0
你这句SQL,只能出一条记录。Top
2 楼lxpbuaa(桂枝香在故国晚秋)回复于 2003-09-01 21:04:08 得分 0
SQL.Add('where Trim(sex)=:sex' );
不要发内容相同的帖子。
————————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
————————————————————————————————————Top
3 楼Elysium(東鱗覀爫)回复于 2003-09-01 21:05:37 得分 0
sql.add('select count(sex) from student.db where sex =:sex)Top
4 楼wcq8303(pope)回复于 2003-09-01 21:07:04 得分 0
你的程序有问题。
应该是这样在对参数赋值之前,对参数的类型进行说明:
ParamByName('sex').datetype:=asstring;
还有你的SQL语句有问题:
SQL.Add('select count(distinct sex) from student.db');
distinct sex是区分不同的sex,而后面有对sex指定了,所以这里只有一条,要得出你的结果,应去掉distinctTop
5 楼ttllhh()回复于 2003-09-01 21:07:54 得分 0
上面这位兄弟,那应该怎么做啊?谢谢指教。。。Top
6 楼wcq8303(pope)回复于 2003-09-01 21:19:25 得分 0
和你的差不多
procedure TForm1.Button1Click(Sender: TObject);
begin
with query1 do
begin
Close;
SQL.Clear ;
SQL.Add('select count(sex) as num from student.db');
SQL.Add('where sex=:sex' );
ParamByName('sex').datetype:=Asstring; //假如sex就string型的
ParamByName('sex').AsString := Trim(edit1.text);
Open;
end;
label1.Caption := query1.fieldbyname('num').asstring;
end;Top



