Registros aparecendo duplicado na grid

19/05/2017

0

oi...
Estou tentando fazer um programinha de migração de dados e quando abre uma determinada tabela os registros aparecem duplicados.

O que pode ser?

Já tentei apagar e não vai no banco está tudo certinho não tem registos duplicados só aparece no sistema
Eduardo Silva

Eduardo Silva

Responder

Posts

19/05/2017

Roberto Wutke

Possivelmente pode ser o seu Join das tabelas que está duplicando os registros, qualquer coisa coloca o Sql pra nos ai.

Bons códigos!
Responder

19/05/2017

Paulo Costa

Deve ser o join mesmo. Qualquer coisa coloca um (group by pk).
Responder

19/05/2017

Eduardo Silva

não tem Join segue o código
procedure TForm1.T03AdvParteContraria;
begin
  lblTabelas.Caption := 'Abrido a Tabela de: '+DMNovoBanco.FDTable03.TableName;
  lblTabelas.Repaint;
  DMAutosad.FDTable03.Open;
  DMNovoBanco.FDTable03.Open;
  lblTabelas.Caption := 'Tabela de: '+DMNovoBanco.FDTable03.TableName+' Aberta.';
  lblTabelas.Repaint;

  lblCopiandoConteudo.Visible := True;
  lblCopiandoConteudo.Repaint;

  DMAutosad.FDTable03.First;
  DMNovoBanco.FDTable03.First;

  while not DMAutosad.FDTable03.Eof do
  begin
    DMNovoBanco.FDTable03.Append;

    DMNovoBanco.FDTable03NOME_ADVOGADO.AsString := DBEdit42.Text;
    DMNovoBanco.FDTable03ATIVO.AsString         := DBEdit43.Text;

    DMNovoBanco.FDTable03.Post;

    DMAutosad.FDTable03.Next;
  end;

  DMAutosad.FDTable03.Close;
  DMNovoBanco.FDTable03.Close;
end;


A tabela tem 722 registros
basicamente eu garvo o Nome do Advogado e se ele esta ativo no escritório.
Campos da tabela

Nome_ADV Varchar (35)
Ativo Varchar (1)

não pego os registros de uma Query ou coloco em CDS e própria tabela no dbGrid
Responder

22/05/2017

Roberto Wutke

Tem exemplo de print e o Sql pra mandar... ? porque se for pelo código teoricamente está certo... mas se o erro persiste, ai é mais tenso analisar só com codigo do delphi.
Responder

22/05/2017

Raimundo Pereira

Tente deste modo e verifique se mesmo assim irá apresentar duplicidade no grid.

DMAutosad.open;
DMAutosad.fetchall;
DMAutosad.first;

if not DMAutosad.FDTable03.Eof then
repeat

DMNovoBanco.FDTable03.insert;
DMNovoBanco.FDTable03NOME_ADVOGADO.AsString := DBEdit42.Text;
DMNovoBanco.FDTable03ATIVO.AsString := DBEdit43.Text;
DMNovoBanco.FDTable03.Post;

DMAutosad.FDTable03.Next;
until DMAutosad.FDTable03.Eof;
end;

DMNovoBanco.close;
DMNovoBanco.open;
Responder

23/05/2017

Eduardo Silva

Tente deste modo e verifique se mesmo assim irá apresentar duplicidade no grid.

DMAutosad.open;
DMAutosad.fetchall;
DMAutosad.first;

if not DMAutosad.FDTable03.Eof then
repeat

DMNovoBanco.FDTable03.insert;
DMNovoBanco.FDTable03NOME_ADVOGADO.AsString := DBEdit42.Text;
DMNovoBanco.FDTable03ATIVO.AsString := DBEdit43.Text;
DMNovoBanco.FDTable03.Post;

DMAutosad.FDTable03.Next;
until DMAutosad.FDTable03.Eof;
end;

DMNovoBanco.close;
DMNovoBanco.open;


com esse comando apresta o erro
---------------------------
Debugger Exception Notification
---------------------------
Project MigracaoBanco.exe raised exception class EFDException with message '[FireDAC][Comp][Clnt]-303. Capability is not supported'.
---------------------------
Break Continue Help
---------------------------
Responder

23/05/2017

Eduardo Silva

Tem exemplo de print e o Sql pra mandar... ? porque se for pelo código teoricamente está certo... mas se o erro persiste, ai é mais tenso analisar só com codigo do delphi.

Como eu falei não tem Sql...Foto
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

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

Aceitar