Exportar dados que não contenham na tabela de destino

Delphi

04/05/2004

Olá pessoal,

Tenho este comando:

//Inicia Cópia. DMConsultas.Exportacao.First; While Not DMConsultas.Exportacao.Eof Do Begin DMDados.TBDados.Append; For I:=0 To DMConsultas.Exportacao.FieldCount - 1 Do DMDados.TBDados.FieldByName(DMConsultas.Exportacao.Fields[I].FieldName).Value:=DMConsultas.Exportacao.Fields[I].Value; DMDados.TBDados.Post; DMConsultas.Exportacao.Next; End; //Finaliza cópia. DMDados.TBDados.Active:=False; DMDados.TBDados.Active:=True


Como posso aperfeiçoar este código para que este não fique repetindo os mesmos dados que já existem na tabela de destino? Se possível, gostaria de utilizar este mesmo código, pois preciso corrigir isso em outros programas, se houver uma linha q eu possa colocar encaixar para isso...

Grato por sua atenção,

Ilano.


Ilanocf

Ilanocf

Curtidas 0

Respostas

Ilanocf

Ilanocf

04/05/2004

Fiz uma consulta, mas não sei se seria a melhor saída:

//Inicia Cópia. DMConsultas.Exportacao.First; While Not DMConsultas.Exportacao.Eof Do Begin With DMConsultas.ConsDados Do Begin Close; SQL.Clear; SQL.Add(´SELECT * FROM TB_Dados´); SQL.Add(´WHERE Matricula=:P1´); ParamByName(´P1´).Value:=DMConsultas.ExportacaoMatricula.Text; Open; End; If (DMConsultas.ConsDados.RecordCount = 0) Then Begin DMDados.TBDados.Append; For I:=0 To DMConsultas.Exportacao.FieldCount - 1 Do DMDados.TBDados.FieldByName(DMConsultas.Exportacao.Fields[I].FieldName).Value:=DMConsultas.Exportacao.Fields[I].Value; DMDados.TBDados.Post; DMConsultas.Exportacao.Next End Else If (DMConsultas.ConsDados.RecordCount > 0) Then Begin DMConsultas.Exportacao.Next; End; End; //Finaliza cópia. DMConsultas.Exportacao.First; DMDados.TBDados.Active:=False; DMDados.TBDados.Active:=True; Label4.Caption:=FormatFloat(´#,000´, DMConsultas.Exportacao.RecordCount) + ´ Registros´; Label5.Caption:=FormatFloat(´,000´, DMDados.TBDados.RecordCount) + ´ Registros´;



GOSTEI 0
Paulo_amorim

Paulo_amorim

04/05/2004

Olá

Sugiro que vc faça uma query generica e exporte somente esses dados...
pois fazer essa pesquisa para cada registro ficará inviavel quando vc tiver 1000 registros, p.ex.

Aí tem que ver qual o relacionamento das tabelas, mas adiantando, um LEFT JOIN resolve teu problema

Selecionando somente os que existem na tab Exportacao e nao na destino, vc copia esses dados obtidos

Até+


GOSTEI 0
POSTAR