anchor.diff:                except
                   on e : Exception do
                   begin
  -                  logger.Error('Error in query ' + tmpsql);
  +                  msg := 'Error in query ' + tmpsql;
  +                  logger.Error(msg);
                     logger.Error(e.Message);
  +                  if Assigned(aResults) then
  +                  begin
  +                    aResults.AddError(msg);
  +                    aResults.AddError(e.Message);
  +                  end;
                     raise;
                   end;
                 end;
  
positive.code: 
  procedure TReplicaEngine.InternalReplicaTable(aProgress: ImProgress; aData : TObject; aJobResult: TJobResult);
  begin
    if DoReplicaTable(aData as TDataReplicaTableToTable) then
      aJobResult.ReturnCode:= 1
    else
      aJobResult.ReturnCode:= -1;
  
negative.code:                 sourcefld := sourceFieldsMap.Find(aTable.FieldsMapping.Get (q).SourceField.AsUppercaseString) as TField;
                  if not Assigned(sourcefld) then
                  begin
                    msg := 'Field "' + aTable.FieldsMapping.Get (q).SourceField.AsString + '" not found as source field in configuration';
                    logger.Error(msg);
                    if Assigned(aResults) then
                      aResults.AddError(msg);
                    raise Exception.Create(msg);
                  end;
                  tmpparameter := SQLBuilderInsert.ParamByName(sourcefld.FieldName);
                  if not Assigned(tmpparameter) then
                  begin
                    msg := 'Parameter "' + sourcefld.FieldName + '" not found in insert query';
                    logger.Error(msg);
                    if Assigned(aResults) then
                      aResults.AddError(msg);
                    raise Exception.Create(msg);
                  end;
  
                  paramshell := destinationFieldsMap.Find(aTable.FieldsMapping.Get(q).DestinationField.AsUppercaseString) as TParameterTypeShell;
                  if not Assigned(paramshell) then
                  begin
                    msg := 'Field "' + aTable.FieldsMapping.Get(q).DestinationField.AsString + '" not found in destination table';
                    logger.Error(msg);
                    if Assigned(aResults) then
                      aResults.AddError(msg);
                    raise Exception.Create(msg);
                  end;
                  try
                    tmpparameter.Assign(sourcefld.AsVariant, paramshell.ParamType);
                  except
                    on e : Exception do
                    begin
                      msg := 'source field ' + sourcefld.FieldName + ' Error:' + e.Message;
                      logger.Error(msg);
                      if Assigned(aResults) then
                        aResults.AddError(msg);
                      raise;
                    end;
                  end;
  