主从表读取数据的时候,如何实现缓冲功能? ( 积分: 100 )

  • 主题发起人 主题发起人 zhouyujie238
  • 开始时间 开始时间
Z

zhouyujie238

Unregistered / Unconfirmed
GUEST, unregistred user!
假设有两个Query,他们之间是主从表关系。我想实现这样一个功能,当主表的游标快速移动时,从表不跟随更新,只有当主表在某条记录上停留0.5秒以后,才刷新从表数据。
 
你可以放個TIME吧,再設置個全局變量,當移動時變量為0,加到5時則執行主從關係,你可以在主數據集的 AfterScroll 下寫:
with cds從表 do
begin
if Active then
begin
Filter := 'KEY = '''+cds主表.FieldByName('KEY').AsString+''' ';
Filtered := true;
end;
end;
 
放一个Timer,在其OnTimer属性中写打开从表的代码,设置其Interval为500
begin
Query2.Open;
Timer1.Enabled:=false;
end;
然后在Query的AfterScroll中写代码:
begin
Timer1.Enabled:=false;
Timer1.Enabled:=True;
end;
 
谢谢
另外附件一点:
procedure TForm1.Button1Click(Sender: TObject);
var
i : integer ;
begin
label1.Caption := '开始时间:' + TimeToStr(Time);
for i := 0 to 1000000 do
begin
Timer1.Enabled := false ;
Timer1.Enabled := true ;
end ;
label2.Caption := '结束时间:' + TimeToStr(Time);
end;
这个代码大概需要两秒多,效率还可以。
哪位还有更快一点的Timer组件吗?
 
谢谢各位
 
后退
顶部