我在每个连接中有2个adoconnections和2个数据表(Local Table1_master Table1_Detail)(Network Table1_master Table1_Detail)。我在DBgrid中显示它们,现在我想从(Network Table1_master Table1_Detail)中的表更新(Local Table1_master Table1_Detail)。如何更新所选记录?
我尝试了很多方法,但通常会插入更多记录而不更新记录。
我使用.MDB数据库。
答案 0 :(得分:1)
你可以使用旧的主人 - >新的主人方法。返回以相同方式排序的两个数据集,并同时运行每个列表。如果table1.key> table2.key然后你在table2中有一个table1中不存在的记录...你可以删除table2中的记录或增加光标。如果table1.key< table2.key然后你在table2中缺少一条记录,所以插入新记录。如果table1.key = table2.key,则可以执行更新逻辑。如果table1在结尾但table2不在,则表1中的其余部分不存在于table1中(因此可能删除)。如果你在table2的末尾,但不在table1的末尾,那么table1的其余部分就是插入。
关于这种方法的好处是你只需要每个表走一次,它就在同一个循环中。