procedure TFrom2.BitBenClick(Sender:Tobject);
begin
if Query1.Active then
Query1.Active :=Flase;
Query1.ParamByName('zdm').AsString :=C_Zd.Text;
Query1.ParamByName('zym').AsString :=C_cc.Text;
Query1.ParamByName('ccm').AsString :=C_Zy.Text;
Query1.ParamByName('nj').AsString :=C_nj.Text;
Query1.Active :=True;
end;
end.TQuery 中的SQL语句为:
sdlect xsxcb.xh,xsxcb.xm,zddhb.zdm,ccdhb.ccm,zydhb.zyh,xsxcb.nj
from xdxcb,zddhb,zydhb,ccdhb
where xsxcb.zdh=zddhb.zdh and xsxcb.cch=ccdhb.cch and xsxcb.zyh=zydhb.zyh
and zddhb.zdm=:zdh and ccdhb.ccm=:ccm and xsxcb.nj=:nj
and zydhb.zyh=:zyh
我在编译时没有错,但是单击BitBen按扭时没有反应!可以看到数据库在查询,但是没有结果
为什么呀?
begin
if Query1.Active then
Query1.Active :=Flase;
Query1.ParamByName('zdm').AsString :=C_Zd.Text;
Query1.ParamByName('zym').AsString :=C_cc.Text;
Query1.ParamByName('ccm').AsString :=C_Zy.Text;
Query1.ParamByName('nj').AsString :=C_nj.Text;
Query1.Active :=True;
end;
end.TQuery 中的SQL语句为:
sdlect xsxcb.xh,xsxcb.xm,zddhb.zdm,ccdhb.ccm,zydhb.zyh,xsxcb.nj
from xdxcb,zddhb,zydhb,ccdhb
where xsxcb.zdh=zddhb.zdh and xsxcb.cch=ccdhb.cch and xsxcb.zyh=zydhb.zyh
and zddhb.zdm=:zdh and ccdhb.ccm=:ccm and xsxcb.nj=:nj
and zydhb.zyh=:zyh
我在编译时没有错,但是单击BitBen按扭时没有反应!可以看到数据库在查询,但是没有结果
为什么呀?
Query1.ParamByName('zym').AsString :=C_cc.Text;
改为
Query1.ParamByName('zdh').AsString :=C_Zd.Text;
Query1.ParamByName('zyh').AsString :=C_cc.Text;
或者把
where xsxcb.zdh=zddhb.zdh and xsxcb.cch=ccdhb.cch and xsxcb.zyh=zydhb.zyh
and zddhb.zdm=:zdh and ccdhb.ccm=:ccm and xsxcb.nj=:nj
and zydhb.zyh=:zyh
改为
where xsxcb.zdh=zddhb.zdh and xsxcb.cch=ccdhb.cch and xsxcb.zyh=zydhb.zyh
and zddhb.zdm=:zdm and ccdhb.ccm=:ccm and xsxcb.nj=:nj
and zydhb.zyh=:zym
试一下
begin
Query1.Active :=Flase;
Query1.ParamByName('zdm').AsString :=C_Zd.Text;
Query1.ParamByName('zym').AsString :=C_cc.Text;
Query1.ParamByName('ccm').AsString :=C_Zy.Text;
Query1.ParamByName('nj').AsString :=C_nj.Text;
Query1.Active :=True;
end;
end.
i think it should be opened first,then
query1.fieldbyname('name').asstring:=.....;