在调用TFDBatchMove。Execute后,如何取消批量移动,但仍在进行中?例如。如果用户按下表单上的“取消”按钮。我在TFDBatchMove上看不到任何取消方法。
我尝试过使用
raise Exception.Create('Aborted');
在TFDBatchMove的OnProgress事件中(检查Cancel按钮设置的Canceled标志),但在异常消息窗口按Ok后,批量移动继续。
另一种可能性是关闭阅读器组件,或在飞行途中设置Reader := nil
,但这看起来有点像黑客。
答案 0 :(得分:5)
调用AbortJob方法。它的描述如下:
使用 AbortJob 方法停止当前数据移动。
在调用 AbortJob 后,该方法停止从中读取数据 读取器数据源,停止向写入器写入数据并终止 执行方法。