经过客服的指点已经该问题已经处理完毕。
原因是:缺少一个判断条件 nil '' 是两种情况
for I := 0 to lCloneDataSet.Fields.Count - 1 do
if (not SysUtils.SameText(lCloneDataSet.Fields[I].FieldName, 'FGUID'))
and (lQuery.FindField(lCloneDataSet.Fields[I].FieldName) <> nil)
and (lQuery.FieldByName(lCloneDataSet.Fields[I].FieldName).asstring<>'') then
begin
lCloneDataSet.FieldByName(lCloneDataSet.Fields[I].FieldName).Value :=
lQuery.FieldByName(lCloneDataSet.Fields[I].FieldName).Value;
end;