高手请进,如何刷新ADOdataset数据集,我的代码很不稳定,代码如下!
Application.CreateForm(Tjsjd, jsjd);
for jd:=1 to 500 do jsjd.pbytl.StepIt;
//form5.cxDBTL_gclqd.GotoEOF;
datam_ysb.ADODS_qdzm.Edit;
datam_ysb.ADOCon_ysb.
//datam_ysb.ADODS_qdzm.UpdateBatch;
//datam_ysb.ADODS_qdzm.Post;
datam_ysb.ADODS_qdzm.Requery;
dataM_ysb.ADOQuery1.Close;
dataM_ysb.ADOQuery1.SQL.Clear;
str:= 'select fid,sum(zhhj) as sun_zhhj,sum(rgfhj) as sun_rgfhj,sum(clfhj) as sun_clfhj,sum(jxfhj) as sun_jxfhj,sum(glfhj) as sun_glfhj,sum(lrhj) as sun_lrhj,sum(zcsbf) as sun_zcsbf,sum(sbsbf) as sun_sbsbf into bb from tgclqd where zmlb= ' '4 ' ' group by fid ';
dataM_ysb.ADOQuery1.SQL.Add(str);
dataM_ysb.ADOQuery1.ExecSQL;
dataM_ysb.ADOQuery1.Close;
//6:00未修改结束
dataM_ysb.ADOQuery1.SQL.Clear;
str:= 'update tgclqd inner join bb on tgclqd.id=bb.fid set ';
dataM_ysb.ADOQuery1.SQL.Add(str);
str:= 'tgclqd.zhhj=bb.sun_zhhj,tgclqd.rgfhj=bb.sun_rgfhj,tgclqd.clfhj=bb.sun_clfhj, ';
dataM_ysb.ADOQuery1.SQL.Add(str);
str:= 'tgclqd.jxfhj=bb.sun_jxfhj,tgclqd.glfhj=bb.sun_glfhj,tgclqd.lrhj=bb.sun_lrhj,tgclqd.zcsbf=bb.sun_zcsbf,tgclqd.sbsbf=bb.sun_sbsbf,tgclqd.zhdj=bb.sun_zhhj/tgclqd.gcl where tgclqd.gcl <> 0 and tgclqd.zmlb= ' '3 ' ' ';
dataM_ysb.ADOQuery1.SQL.Add(str);
dataM_ysb.ADOQuery1.ExecSQL;
dataM_ysb.ADOQuery1.Close;
dataM_ysb.ADOQuery1.SQL.Clear;
str:= 'update tgclqd inner join bb on tgclqd.id=bb.fid set ';
dataM_ysb.ADOQuery1.SQL.Add(str);
str:= 'tgclqd.zhhj=bb.sun_zhhj,tgclqd.rgfhj=bb.sun_rgfhj,tgclqd.clfhj=bb.sun_clfhj ';
dataM_ysb.ADOQuery1.SQL.Add(str);
str:= ',tgclqd.jxfhj=bb.sun_jxfhj,tgclqd.glfhj=bb.sun_glfhj,tgclqd.lrhj=bb.sun_lrhj,tgclqd.zcsbf=bb.sun_zcsbf,tgclqd.sbsbf=bb.sun_sbsbf,tgclqd.zhdj=bb.sun_zhhj where tgclqd.gcl=0 and tgclqd.zmlb= ' '3 ' ' ';
dataM_ysb.ADOQuery1.SQL.Add(str);
dataM_ysb.ADOQuery1.ExecSQL;
dataM_ysb.ADOQuery1.Close;
dataM_ysb.ADOQuery1.SQL.Clear;
str:= 'drop table bb ';
dataM_ysb.ADOQuery1.SQL.Add(str);
dataM_ysb.ADOQuery1.ExecSQL;
dataM_ysb.ADOQuery1.Close;
//******************************************第二次计算
datam_ysb.ADODS_qdzm.Edit;
//datam_ysb.ADODS_qdzm.Post;
datam_ysb.ADODS_qdzm.Requery;
dataM_ysb.ADOQuery1.Close;
dataM_ysb.ADOQuery1.SQL.Clear;
str:= 'select fid,sum(zhhj) as sun_zhhj,sum(rgfhj) as sun_rgfhj,sum(clfhj) as sun_clfhj,sum(jxfhj) as sun_jxfhj,sum(glfhj) as sun_glfhj,sum(lrhj) as sun_lrhj,sum(zcsbf) as sun_zcsbf,sum(sbsbf) as sun_sbsbf into bb from tgclqd ';
dataM_ysb.ADOQuery1.SQL.Add(str);
str:= 'where zmlb= ' '4 ' ' or zmlb= ' '3 ' ' group by fid ';
dataM_ysb.ADOQuery1.SQL.Add(str);
dataM_ysb.ADOQuery1.ExecSQL;
dataM_ysb.ADOQuery1.Close;
dataM_ysb.ADOQuery1.SQL.Clear;
str:= 'update tgclqd inner join bb on tgclqd.id=bb.fid set ';
dataM_ysb.ADOQuery1.SQL.Add(str);
str:= 'tgclqd.zhhj=bb.sun_zhhj,tgclqd.rgfhj=bb.sun_rgfhj ';
dataM_ysb.ADOQuery1.SQL.Add(str);
str:= ',tgclqd.clfhj=bb.sun_clfhj,tgclqd.jxfhj=bb.sun_jxfhj,tgclqd.glfhj=bb.sun_glfhj,tgclqd.lrhj=bb.sun_lrhj,tgclqd.zcsbf=bb.sun_zcsbf,tgclqd.sbsbf=bb.sun_sbsbf,tgclqd.zhdj=bb.sun_zhhj/tgclqd.gcl where tgclqd.gcl <> 0 and tgclqd.zmlb= ' '2 ' ' ';
dataM_ysb.ADOQuery1.SQL.Add(str);
dataM_ysb.ADOQuery1.ExecSQL;
dataM_ysb.ADOQuery1.Close;
dataM_ysb.ADOQuery1.SQL.Clear;
str:= 'update tgclqd inner join bb on tgclqd.id=bb.fid set ';
dataM_ysb.ADOQuery1.SQL.Add(str);
str:= 'tgclqd.zhhj=bb.sun_zhhj,tgclqd.rgfhj=bb.sun_rgfhj ';
dataM_ysb.ADOQuery1.SQL.Add(str);
str:= ',tgclqd.clfhj=bb.sun_clfhj,tgclqd.jxfhj=bb.sun_jxfhj,tgclqd.glfhj=bb.sun_glfhj,tgclqd.lrhj=bb.sun_lrhj,tgclqd.zcsbf=bb.sun_zcsbf,tgclqd.sbsbf=bb.sun_sbsbf,tgclqd.zhdj=bb.sun_zhhj where tgclqd.gcl=0 and tgclqd.zmlb= ' '2 ' ' ';
dataM_ysb.ADOQuery1.SQL.Add(str);
dataM_ysb.ADOQuery1.ExecSQL;
dataM_ysb.ADOQuery1.Close;
dataM_ysb.ADOQuery1.SQL.Clear;
str:= 'drop table bb ';
dataM_ysb.ADOQuery1.SQL.Add(str);
dataM_ysb.ADOQuery1.ExecSQL;
dataM_ysb.ADOQuery1.Close;
//***************************************第三次计算
datam_ysb.ADODS_qdzm.Edit;
//datam_ysb.ADODS_qdzm.Post;
datam_ysb.ADODS_qdzm.Requery;
dataM_ysb.ADOQuery1.Close;
dataM_ysb.ADOQuery1.SQL.Clear;
str:= 'select fid,sum(zhhj) as sun_zhhj,sum(rgfhj) as sun_rgfhj,sum(clfhj) as sun_clfhj,sum(jxfhj) as sun_jxfhj,sum(glfhj) as sun_glfhj,sum(lrhj) as sun_lrhj,sum(zcsbf) as sun_zcsbf,sum(sbsbf) as sun_sbsbf into bb from tgclqd ';
dataM_ysb.ADOQuery1.SQL.Add(str);
str:= 'where zmlb= ' '4 ' ' or zmlb= ' '3 ' ' or zmlb= ' '2 ' ' group by fid ';
dataM_ysb.ADOQuery1.SQL.Add(str);
dataM_ysb.ADOQuery1.ExecSQL;
dataM_ysb.ADOQuery1.Close;
dataM_ysb.ADOQuery1.SQL.Clear;
str:= 'update tgclqd inner join bb on tgclqd.id=bb.fid set ';
dataM_ysb.ADOQuery1.SQL.Add(str);
str:= 'tgclqd.zhhj=bb.sun_zhhj,tgclqd.rgfhj=bb.sun_rgfhj ';
dataM_ysb.ADOQuery1.SQL.Add(str);
str:= ',tgclqd.clfhj=bb.sun_clfhj,tgclqd.jxfhj=bb.sun_jxfhj,tgclqd.glfhj=bb.sun_glfhj,tgclqd.lrhj=bb.sun_lrhj,tgclqd.zcsbf=bb.sun_zcsbf,tgclqd.sbsbf=bb.sun_sbsbf,tgclqd.zhdj=bb.sun_zhhj/tgclqd.gcl where tgclqd.gcl <> 0 and tgclqd.zmlb= ' '1 ' ' ';
dataM_ysb.ADOQuery1.SQL.Add(str);
dataM_ysb.ADOQuery1.ExecSQL;
dataM_ysb.ADOQuery1.Close;
dataM_ysb.ADOQuery1.SQL.Clear;
str:= 'update tgclqd inner join bb on tgclqd.id=bb.fid set ';
dataM_ysb.ADOQuery1.SQL.Add(str);
str:= 'tgclqd.zhhj=bb.sun_zhhj,tgclqd.rgfhj=bb.sun_rgfhj ';
dataM_ysb.ADOQuery1.SQL.Add(str);
str:= ',tgclqd.clfhj=bb.sun_clfhj,tgclqd.jxfhj=bb.sun_jxfhj,tgclqd.glfhj=bb.sun_glfhj,tgclqd.lrhj=bb.sun_lrhj,tgclqd.zcsbf=bb.sun_zcsbf,tgclqd.sbsbf=bb.sun_sbsbf,tgclqd.zhdj=bb.sun_zhhj where tgclqd.gcl=0 and tgclqd.zmlb= ' '1 ' ' ';
dataM_ysb.ADOQuery1.SQL.Add(str);
dataM_ysb.ADOQuery1.ExecSQL;
dataM_ysb.ADOQuery1.Close;
dataM_ysb.ADOQuery1.SQL.Clear;
str:= 'drop table bb ';
dataM_ysb.ADOQuery1.SQL.Add(str);
dataM_ysb.ADOQuery1.ExecSQL;
dataM_ysb.ADOQuery1.Close;
//****************************************************第四次计算 datam_ysb.ADODS_qdzm.Edit;
//datam_ysb.ADODS_qdzm.Post;
datam_ysb.ADODS_qdzm.Requery;
dataM_ysb.ADOQuery1.Close;
dataM_ysb.ADOQuery1.SQL.Clear;
str:= 'select 1 as fid,sum(zhhj) as sun_zhhj,sum(rgfhj) as sun_rgfhj,sum(clfhj) as sun_clfhj,sum(jxfhj) as sun_jxfhj,sum(glfhj) as sun_glfhj,sum(lrhj) as sun_lrhj,sum(zcsbf) as sun_zcsbf,sum(sbsbf) as sun_sbsbf into bb from tgclqd where fid=0 group by fid ';
dataM_ysb.ADOQuery1.SQL.Add(str);
dataM_ysb.ADOQuery1.ExecSQL;
dataM_ysb.ADOQuery1.Close;
dataM_ysb.ADOQuery1.SQL.Clear;
str:= 'update gclhzb inner join bb on gclhzb.id=bb.fid set ';
dataM_ysb.ADOQuery1.SQL.Add(str);
str:= 'gclhzb.zhhj=bb.sun_zhhj,gclhzb.rgfhj=bb.sun_rgfhj ';
dataM_ysb.ADOQuery1.SQL.Add(str);
str:= ',gclhzb.clfhj=bb.sun_clfhj,gclhzb.jxfhj=bb.sun_jxfhj,gclhzb.glfhj=bb.sun_glfhj,gclhzb.lrhj=bb.sun_lrhj,gclhzb.glffl=bb.sun_zcsbf,gclhzb.lrfl=bb.sun_sbsbf,gclhzb.zhdj=bb.sun_zhhj/gclhzb.gcl where gclhzb.gcl <> 0 and gclhzb.xh=1 ';
dataM_ysb.ADOQuery1.SQL.Add(str);
dataM_ysb.ADOQuery1.ExecSQL;
dataM_ysb.ADOQuery1.Close;
dataM_ysb.ADOQuery1.SQL.Clear;
str:= 'drop table bb ';
dataM_ysb.ADOQuery1.SQL.Add(str);
dataM_ysb.ADOQuery1.ExecSQL;
dataM_ysb.ADOQuery1.Close;
//dataM_ysb.ADOds_qdzm.Post;
dataM_ysb.ADOds_qdzm.refresh;
//dataM_ysb.ADODS_bfhzb.Post;
dataM_ysb.ADODS_bfhzb.Requery;
//dataM_ysb.ADODS_dezjfhj.Post;
dataM_ysb.ADODS_dezjfhj.Requery;
for jd:=501 to 1000 do jsjd.pbytl.StepIt;
jsjd.Close;
[解决办法]
遇到同样问题,关注^^^^^
我的问题是
如果在一个按钮的单击事件中,更新后接着查询不能及时更新
如果在两个单击事件中,先更新后,再点击查询,可显示最新数据,
为什么???
[解决办法]
一般使用Requery;
[解决办法]
顶
[解决办法]
需要有返回结果的,如select要用Open去执行,其他的添加,删除,更新的用ExecSQL去执行
[解决办法]
requery
[解决办法]
看得眼花啊