clientdataset问题(100分)

  • 主题发起人 主题发起人 andrew57
  • 开始时间 开始时间
A

andrew57

Unregistered / Unconfirmed
GUEST, unregistred user!
while not clientdataset1.eofdo
being
clientdataset2.append;
....
clientdataset2.post;
clientdataset1.next;
end;
在clientdataset2的某些字段中写了onchange事件
事件内部:
while not clientdataset2.eofdo
begin
....
next
end;
虽然也disablecontrols了,
但这中模式非常慢,append 7条记录都10s
大家有没有什么好方法改进
 
业务操作的话,CDS传参数就可以了。更新逻辑放给QUERY来做吧。
 
没说到原因
 
想取添加的记录为当前记录吗?
 
只求一答
 
disablecontrols只是阻断界面的刷新,你clientdataset2的某些字段中写了onchange事件的遍历记录仍然每次都要做的,如果这些事件在新增记录时不是必须,可以这样改一下:
clientdataset2field1.onchang:=nil;
...
try
while not clientdataset1.eofdo
being
clientdataset2.append;
....
clientdataset2.post;
clientdataset1.next;
end;
finally
clientdataset2field1.onchang:=clientdataset2field1onchang;
..........
end;
 
接受答案了.
 
你是否用表格更新数据集?可以直接用clientdataset1.ApplyUpdate(0);更新就行了.
不需要做这个循环.
 

Similar threads

S
回复
0
查看
694
SUNSTONE的Delphi笔记
S
S
回复
0
查看
655
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
870
SUNSTONE的Delphi笔记
S
后退
顶部