PAGUE 6 MESES
LEVE 12 MESES
GARANTIR DESCONTO

Fórum TFDBatchMove adicionar mappings dinamicamente #581203

10/05/2017

0

Boa tarde, estou usando o FDBatchMoveDataSetReader1 para pegar os dados de uma query e usando o FDBatchMove1 para pegar os dados e jogar num FDBatchMoveSQLWriter1 para gravar os dados em outro lugar....
o sql que retorna na query é dinamico e nem todos os campos que tem nele, terá na tabela de destino, então o que preciso é criar os mappings do FDBatchMove1 de origem e destino dinamicamente, estou fazendo assim;

    with FDQuery1 do
      begin
         Active := false;
         Close;
         sql.Clear;
         sql.add('select * from tbl_adm_configsynccampos where nm_tabelapara = ''tbl_prd_produtos'' ');
         open;
      end;

  while not FDQuery1.Eof do
    begin
      with BatchMove.Mappings do
        begin
          Add.SourceFieldName      := FDQuery1.FieldByName('nm_campode').AsString;
          Add.DestinationFieldName := FDQuery1.FieldByName('nm_campopara').AsString;
        end;
      FDQuery1.Next;
    end;


Ele está adicionando, mas está criando um item de mapping de origem e outro item de destino e não no mesmo item incluindo o destino e origem, coloquei manualmente para ver o objeto e ele deu assim;

object BatchMove: TFDBatchMove
  Reader = Reader
  Mappings = <
    item
      SourceFieldName = 'origem'
      DestinationFieldName = 'destino'
    end
    item
      SourceFieldName = 'de'
      DestinationFieldName = 'para'
    end>
  LogFileName = 'Data.log'
  Analyze = [taFormatSet, taHeader, taFields]
  Left = 232
  Top = 344
end


Como faço para incluir dinamicamente ?
Robson Morais

Robson Morais

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar