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;