Exportar dados que não contenham na tabela de destino
Olá pessoal,
Tenho este comando:
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.
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
Curtidas 0
Respostas
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
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é+
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