首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

,怎么刷新ADOdataset数据集,小弟我的代码很不稳定,代码如下

2012-03-14 
高手请进,如何刷新ADOdataset数据集,我的代码很不稳定,代码如下!Application.CreateForm(Tjsjd,jsjd)forj

高手请进,如何刷新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
[解决办法]
看得眼花啊

热点排行