2013-05-13 113 views
2

我使用FireDAC的Array DML功能將大量數據插入到遠程MS SQL數據庫中。FireDAC:Array DML進度

它工作正常,但需要時間來完成執行方法。在執行方法運行時,我想知道FireDAC的內部進度,以便我可以向用戶顯示它耐心等待。

如何獲取執行方法的實際狀態?

PS:Delphi XE4和FireDAC v8

謝謝。

回答

2

這對DBMS API來說是一個問題 - 它是否提供進度反饋? Array DML的本質是將整組數組項目作爲單個數據包發送到DBMS。在執行結束時,DBMS提供了反饋 - 再次爲整個數組項目。這減少了往返次數。中間的反饋會增加往返次數。

AFAIK,沒有一個API提供進度反饋。所以,FireDAC也不提供它。如果您需要進度反饋,則不要使用Array DML並使用逐一的ExecSQL方法。

+1

因此,我需要將我的所有數據分成100個例子,併爲每個數據使用小的DML數組。 – 2013-05-13 18:53:58

+1

其他選項 - 是的,您可以。 – 2013-05-14 04:15:22