(A)在公司端, 比较源表src和目标表dst: (1)源表src中记录在目标表dst不存在的记录加入删除标记写入查询 DeleteSQL=''''select 2 as AowStatA,dst.* from dst right join src on (dst.所有字段=src.所有字段) where src.第一个字段 is null''''; (2)目标表src中记录在源表dst不存在的记录加入新增标记写入查询 InsertSQL=''''select 4 as AowStatA,src.* from src left join dst on (src.所有字段=dst.所有字段) where dst.第一个字段 is null''''; (3)对上面两个查询结果用 provider.GetRecords 分别得到 一个 OleVariant ,转换为 string 写入XML文件: 分别删除<FIELD attrname="AowStatA" fieldtype="r8"/> 接点,然后合并两XML文件,再把“AowStatA”该为“RowState”. 得到一个数据补丁(XML文件). (4)数据补丁(XML文件)中一行 <PARAMS ... /> 该为 <PARAMS DATASET_DELTA="1" MD_SEMANTICS="3"/>