Delphi - 在数据源之间复制数据

时间:2018-02-15 17:08:43

标签: rest delphi

Delphi Seattle,Win10。我需要编写一个通用例程来刷新从单个源到单个目标的一组表。两端的表已经存在,并且该过程是完全刷新的....即清空目标表,然后复制所有行。这些表是相同的,相同的列,数据类型等。挑战是如何访问数据的限制。我对源代码的唯一访问是通过REST。我可以通过REST,使用连接到RESTAdapter,TDataSource和TClientDataSet的RESTClient,RESTRequest,RESTResponse来提取数据。目标是Oracle数据库,我可以直接访问它。

我有大约15个表,最大的是大约200,000行,40列。

现在,我循环遍历每一行,对于源上的每一列,找到目标中的匹配列....并且性能正在扼杀我。有更优雅(尤其是更快)的方式吗?

以下是我现在正在做的代码片段......

// for each row, loop
...
// Copy Each Field
          for i := 0 to dm1.ds_Generic.DataSet.FieldCount - 1 do
          begin
            FieldFrom := dm1.ds_Generic.DataSet.Fields[i];
            FieldTo   := dm1.tGeneric.FindField(FieldFrom.FieldName);
            if Assigned(FieldTo) then
            begin
              FieldTo.Value := FieldFrom.Value;
            end;
          end;

0 个答案:

没有答案