我正在使用 FireDAC 的数组 DML 功能将大量数据插入到远程 MS SQL 数据库。
它工作正常,但需要时间才能完成执行方法。当execute方法运行时,我想知道FireDAC的内部进度,以便我可以将其显示给用户耐心等待。
如何获取执行方法的实际状态?
PS:Delphi XE4 和 FireDAC v8
谢谢。
最佳答案
这对 DBMS API 来说是一个问题 - 它是否提供进度反馈。数组 DML 的本质是将完整的数组项集作为单个数据包发送到 DBMS。在执行结束时,DBMS 会提供反馈 - 再次针对完整的数组项集。这减少了往返次数。中间的反馈会增加往返次数。
据我所知,没有一个 API 提供进度反馈。所以,FireDAC也不提供它。如果您需要进度反馈,那么不要使用数组 DML,而使用一对一的 ExecSQL 方法。
关于delphi - FireDAC:阵列 DML 进展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16523941/