在进行中取消长时间运行的TFDBatchMove

时间:2017-07-10 11:48:29

标签: delphi

在调用TFDBatchMoveExecute后,如何取消批量移动,但仍在进行中?例如。如果用户按下表单上的“取消”按钮。我在TFDBatchMove上看不到任何取消方法。

我尝试过使用

  raise Exception.Create('Aborted');

在TFDBatchMove的OnProgress事件中(检查Cancel按钮设置的Canceled标志),但在异常消息窗口按Ok后,批量移动继续。

另一种可能性是关闭阅读器组件,或在飞行途中设置Reader := nil,但这看起来有点像黑客。

1 个答案:

答案 0 :(得分:5)

调用AbortJob方法。它的描述如下:

  

使用 AbortJob 方法停止当前数据移动。

     

在调用 AbortJob 后,该方法停止从中读取数据   读取器数据源,停止向写入器写入数据并终止   执行方法。