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,怎么回事?
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,怎么回事?
解决方案 »
- 求教古怪问题,invalid parameter
- 请问delphi 中如何来判断dbnavigator 上按钮的状态……….
- 设计模式:界面与业务逻辑分离。同时,执行Exe和业务逻辑处理模块Dll分离。讨论
- socket客户端发送问题
- TWebBrowser IWebBrowser2 问题
- renzhm(戴尔飞)领分
- 关闭form的快捷键(比如Esc)怎么设?
- 如何将程序的每天操作写入到一个日志文件里
- 200分,请进来,关于控件设置
- 如何捕获当前所有和本机相连的tcp/udp连接的信息(包括对方ip和port)?
- 200分。邮件服务器, 谁有做过?是否可以谈一谈?无论什么语言都可以。
- delphi6实例书下载
————————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
————————————————————————————————————
应该是这样在对参数赋值之前,对参数的类型进行说明:
ParamByName('sex').datetype:=asstring;
还有你的SQL语句有问题:
SQL.Add('select count(distinct sex) from student.db');
distinct sex是区分不同的sex,而后面有对sex指定了,所以这里只有一条,要得出你的结果,应去掉distinct
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;