Fórum Exportar dados que não contenham na tabela de destino #229742
04/05/2004
0
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
Curtir tópico
+ 0
Responder
Posts
04/05/2004
Ilanocf
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´;
Responder
Gostei + 0
04/05/2004
Paulo_amorim
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é+
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)