使用本地文件中的记录更新MySQL表

问题描述

要做什么
我有一些记录的JSON文件。我想用这些记录更新一个MysqL表(相同的结构)。基本上是单向同步。
我了解这里可能有多种方法。我正在寻找的是一种我可以将尽可能多的过程留给FireDAC的过程。为简单起见,我想避免使用sql语句,遍历记录或使用文字字段名称等。
(这是一个 Delphi 10.4 控制台应用程序)

我尝试过但无法正常工作
我尝试使用TFDQuery加载整个MysqL表,然后使用LoadFromFile()合并结果数据集:

fdQuery := TFDQuery.Create(nil);
fdQuery.Connection := fdConnection;
fdQuery.Open('SELECT * FROM MysqLtable');

fdQuery.ResourceOptions.StoreMergeData := dmDataMerge;
fdQuery.LoadFromFile('C:\localfile\myjson.json');

到目前为止看起来不错。如果我查看数据集的内容...

fdQuery.First();
repeat
  WriteLn(fdQuery.GetRow().DumpRow(False));
  fdQuery.Next();
until fdQuery.EoF;

...我整洁地看到所有记录,附加或更新了文件中的内容

问题是,我无法将此“状态”返回到MysqL表中。看来我无法调用Post()ApplyUpdates()等,并且在关闭fdQuery时,从JSON文件添加修改的任何内容都将被丢弃。

我的问题是:我在这方法上做错了什么?我想我可以改用TfdbatchMove,但我想了解是否可以或如何使上述方法起作用。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)