2017-07-10 72 views
2

如何在呼叫TFDBatchMove後取消批量移動。 Execute,但它仍在進行中?例如。如果用戶在表單上按下取消按鈕。我在TFDBatchMove上看不到任何一種取消方法。在進行中取消長時間運行的TFDBatchMove

我在TFDBatchMove的OnProgress事件中使用

raise Exception.Create('Aborted'); 

嘗試(檢查取消標誌被取消按鈕設置),但按下確定異常消息窗口後,該批次移動繼續。

另一種可能性是關閉閱讀器組件,或者在飛行中設置Reader := nil,但這看起來有點像黑客。

回答

5

調用AbortJob方法。它描述的一樣:

使用AbortJob方法停止當前的數據移動。

AbortJob呼叫之後,該方法停止從 讀取器數據源讀取數據,寫入數據停止向寫入器,並且終止 Execute方法。

+0

啊 - 謝謝你!必須是因爲它是文檔中列出的第一種方法,我完全錯過了;) – DaveBoltman

+0

不客氣! :) – Victoria