帮忙看看这个过程怎么才能加入一个进度条

amartapple 2006-09-08 02:34:53
因为要插入的数据太多,大概有500000多条,需要时间很长,下面的代码虽然能完成任务,但是交互性很不好,运行以后就像死机一样,因此我想加入一个进度条,可是不会加,请帮忙,谢谢

代码如下:

try
adoquery1.close;
adoquery1.sql.clear;
ssql:='insert into pp (pp1,pp2,pp3) select * from ppold;
adoquery1.parameters.clear;
adoquery1.paramcheck:=false;
adoquery1.sql.text:=ssql;
adoquery1.execsql;
except
showmessage("error");
end;
...全文
352 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
AOCOC 2006-09-11
  • 打赏
  • 举报
回复
用timer设置步长跟位置就行了。。
happyhong 2006-09-11
  • 打赏
  • 举报
回复
1。建立一个等待的窗口单元,这样可以在查询时调用
单元代码:
unit MessageUnit;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls, ExtCtrls;

type
TMessageForm = class(TForm)
Message_Pl: TPanel;
Avi: TAnimate;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
MessageForm: TMessageForm;

implementation

{$R *.DFM}

procedure TMessageForm.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Screen.Cursor:=crDefault;
if Avi.Active then
Avi.Active:=False;
end;

procedure TMessageForm.FormCreate(Sender: TObject);
begin
Avi.Active:=True;
end;

procedure TMessageForm.FormShow(Sender: TObject);
begin
Screen.Cursor:=crSQLWait;

end;

end.
--注:Avi的COMMONAVI的属性选:aviFindFile
=================================================
2。调用方法:
调用的单元前要UESE MessageUnit

try
adoquery1.close;
adoquery1.sql.clear;
ssql:='insert into pp (pp1,pp2,pp3) select * from ppold;
adoquery1.parameters.clear;
adoquery1.paramcheck:=false;
adoquery1.sql.text:=ssql;

messageform:=Tmessageform.Create(application);
messageform.Message_Pl.Caption:=
'正在统计,请稍候...';
messageform.Show;
messageform.Update;

adoquery1.execsql;
messageform.close;
except
showmessage("error");
messageform.close;
end;
==============
还有一种方法,查询用线程写,但我不懂,关注ING。。。

keyz 2006-09-09
  • 打赏
  • 举报
回复
用timer做个动画吧。不要用进度条了,不知道什么时候结束。
yuehaiyang 2006-09-09
  • 打赏
  • 举报
回复
放个timer到你的窗口上,然后一秒,一秒的让进度条动,执行完sql后,一次设置到100%
hare007 2006-09-09
  • 打赏
  • 举报
回复
加个动画放上面

2,498

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧