循环我有一个代码,一些这样的事通过优化数据集
dxMemOrdered : TdxMemData;
while not qrySandbox2.EOF do
begin
dxMemOrdered.append;
dxMemOrderedTotal.asCurrency := qrySandbox2.FieldByName('TOTAL').asCurrency;
dxMemOrdered.post;
qrySandbox2.Next;
end;
这个代码在一个线程中执行。当有大量记录说“400000”时,大约需要25分钟来解析它。有没有什么办法可以通过优化循环来缩小尺寸?任何帮助,将不胜感激。
更新
基础上的建议,我做了以下修改
dxMemOrdered : TdxMemData;
qrySandbox2.DisableControls;
while not qrySandbox2.Recordset.EOF do
begin
dxMemOrdered.append;
dxMemOrderedTotal.asCurrency := Recordset.Fields['TOTAL'].Value;
dxMemOrdered.post;
qrySandbox2.Next;
end;
qrySandbox2.EnableControls;
和我的输出时间从15分钟到2分钟提高。谢谢你们
这是TdxMemData – Jeeva 2013-05-08 08:47:22
使用'try..finally'块作为@whosrdaddy在他的答案。我提到的前向游标可能会帮助您改进从源数据集中读取数据。 – TLama 2013-05-08 11:59:43