以下是一个比较复杂的SQL语句,5000记录要花10秒钟左右:
adoquery6.Close;
adoquery6.SQL.Clear;
adoquery6.SQL.Add('INSERT INTO temp select xsbh,(select count(*)+1 from cy as b where a.总分<b.总分 and left(b.xsbh,5)="C0301" ) as 校名次 from cy as a where left(a.xsbh,5)="C0301"');//计算学校名次,再将xsb和校名次两
//个字段写入temp表中
adoquery6.ExecSQL;
这句话中left(b.xsbh,5)="C0301",“C0301”为学校代码,当然还有“C0302”、“C0303”所以在我实际程序中还有用到一个循环,所以时间还要长,因此我想做一个等待提示,我要求算出上面程序在何种硬件配置下没有循环需要多少时间?(上面10秒钟是在赛扬2.4G,256Mb上的时间)
这个怎么实现呀?
adoquery6.Close;
adoquery6.SQL.Clear;
adoquery6.SQL.Add('INSERT INTO temp select xsbh,(select count(*)+1 from cy as b where a.总分<b.总分 and left(b.xsbh,5)="C0301" ) as 校名次 from cy as a where left(a.xsbh,5)="C0301"');//计算学校名次,再将xsb和校名次两
//个字段写入temp表中
adoquery6.ExecSQL;
这句话中left(b.xsbh,5)="C0301",“C0301”为学校代码,当然还有“C0302”、“C0303”所以在我实际程序中还有用到一个循环,所以时间还要长,因此我想做一个等待提示,我要求算出上面程序在何种硬件配置下没有循环需要多少时间?(上面10秒钟是在赛扬2.4G,256Mb上的时间)
这个怎么实现呀?
解决方案 »
- 关于sql2000备份的问题
- dbgrid动态增加列实现百分比,在线等
- [急]关于将TIcon存入数据库后失真的问题!
- scrollbox滚动条
- @@@@@@@我要离开这伤心的冰城!为她来,因她去!!@@@@@@@
- 用adoquery连接一个无记录的表时,dbgrid会显示出一个空行
- fastreport vcl 5发布了,大家都还没有发现吗?
- 急、急_怎样取得Cpu和硬盘的序列号?200分
- 求源码:通过一个EXE分析另一个EXE并修改其中的内容。
- 可不可以在pws下调用delphi编写的dll文件
- 问一个难题:因特网机子通过一服务器取局域网中一msSQL数据的方法,解决后加分
- 销毁主窗体再创建发生错误,帮忙看一下!
s1,s2:Variant;
begin
s1:=GetTickCount;
adoquery6.Close;
adoquery6.SQL.Clear;
adoquery6.SQL.Add('INSERT INTO temp select xsbh,(select count(*)+1 from cy as b where a.总分<b.总分 and left(b.xsbh,5)="C0301" ) as 校名次 from cy as a where left(a.xsbh,5)="C0301"');//计算学校名次,再将xsb和校名次两
//个字段写入temp表中
adoquery6.ExecSQL;
s2:=GetTickCount;
ShowMessage(FloatToStr((s2-s1)/1000));
end;
adoquery6.SQL.Clear;
adoquery6.SQL.Add('INSERT INTO temp select xsbh,(select count(*)+1 from cy as b where a.总分<b.总分 and left(b.xsbh,5)="C0301" ) as 校名次 from cy as a where left(a.xsbh,5)="C0301"');//计算学校名次,再将xsb和校名次两
//个字段写入temp表中
adoquery6.ExecSQL;
在我实际程序中还有用到一个循环
你用一个进度条吧,你不是有有循环吗?将他的长度和变化值作为比较就可以得出当前的执行进度了。