社区
数据库相关
帖子详情
一个关于数据库的问题。
settingsun
2002-07-06 11:11:39
连接到服务器进行数据查询,如何在这一段时间内用ProgressBar来进行时间的同步显示,即用ProgressBar来显示查询的进度。
望指教。
...全文
119
7
打赏
收藏
一个关于数据库的问题。
连接到服务器进行数据查询,如何在这一段时间内用ProgressBar来进行时间的同步显示,即用ProgressBar来显示查询的进度。 望指教。
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
honey_001
2002-07-06
打赏
举报
回复
同意debussy(debussy)的说法.
debussy
2002-07-06
打赏
举报
回复
使用ADO的异步查询方式
对于较长时间执行的查询操作,可以使用异步方式
在查询过程中,ADO会以OnFetchProgress事件来通知应用程序正在处理
用OnFetchComplete事件来通知应用程序已经处理完毕
详细情况请参考李维《Delphi 5.x ADO/MTS/COM+高级程序设计》第110页,有非常详细的例子
crazyz
2002-07-06
打赏
举报
回复
定义一个progressBar的Form
unit ProgressForm;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, ExtCtrls, StdCtrls;
type
TProgressFrm = class(TForm)
ProgressBar1: TProgressBar;
lblPrompt: TLabel;
procedure FormActivate(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
procedure ProgressShow(aHint: string = '正在运行请等待');
procedure SetPos(aPos: extended; isOver: boolean);
procedure ProgressHide;
var
ProgressFrm: TProgressFrm;
FFormTop: integer;
implementation
{$R *.dfm}
{ TProgressFrm }
procedure ProgressShow(aHint: string = '正在运行请等待');
begin
if not Assigned(ProgressFrm) then
begin
ProgressFrm := TProgressFrm.Create(Application);
end;
setPos(1, False);
ProgressFrm.lblPrompt.Caption := aHint + '......';
progressFrm.Show;
ProgressFrm.Update;
Screen.Cursor := crHourGlass;
end;
procedure ProgressHide;
begin
SetPos(100, True);
end;
procedure SetPos(aPos: extended; isOver: boolean);
begin
progressFrm.ProgressBar1.Position := trunc(aPos);
ProgressFrm.ProgressBar1.Update;
//Application.ProcessMessages;
if IsOver then
begin
Screen.Cursor := crDefault;
ProgressFrm.Hide;
end;
end;
procedure TProgressFrm.FormActivate(Sender: TObject);
begin
SetWindowPos(ProgressFrm.handle, HWND_TOPMOST,
ProgressFrm.Left, ProgressFrm.Top, ProgressFrm.Width, ProgressFrm.Height, 0);
end;
procedure TProgressFrm.FormCreate(Sender: TObject);
begin
Top := trunc(Screen.Height / 3);
left := trunc((Screen.Width - Width) / 2);
end;
end.
在查询时先调用
ProgressShow
try
Setpos(recno/recordcount
finally
ProgressHide
end;
WnEunfn
2002-07-06
打赏
举报
回复
不可能的,因为查询所花时间未知……
robinhunter
2002-07-06
打赏
举报
回复
你的问题已经众多高手分析,结论是:此题无解 :(
settingsun
2002-07-06
打赏
举报
回复
怎么没人知道吗。
debussy
2002-07-06
打赏
举报
回复
使用ADO的异步查询方式
对于较长时间执行的查询操作,可以使用异步方式
在查询过程中,ADO会以OnFetchProgress事件来通知应用程序正在处理
用OnFetchComplete事件来通知应用程序已经处理完毕
详细情况请参考李维《Delphi 5.x ADO/MTS/COM+高级程序设计》第110页,有非常详细的例子
高校如何构建科创知识图谱优化资源匹配?.docx
科易网基于40亿+科创知识图谱
数据库
,深度探索AI技术在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,研究科技创新领域的AI+数智化解决方案,推动科技创新与产业创新智能化发展。
如何实现高校科技成果的高质量推广与商业化落地?.docx
科易网基于40亿+科创知识图谱
数据库
,深度探索AI技术在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,研究科技创新领域的AI+数智化解决方案,推动科技创新与产业创新智能化发展。
代码还原课程笔记26-30编译程序和工具
代码还原课程笔记26-30编译程序和工具
Cadence的学习与应用
从零开始的Cadence学习资料,希望对大家有帮助。
数据库相关
2,508
社区成员
88,437
社区内容
发帖
与我相关
我的任务
数据库相关
Delphi 数据库相关
复制链接
扫一扫
分享
社区描述
Delphi 数据库相关
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章