如何解决使用本地文件中的记录更新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 举报,一经查实,本站将立刻删除。