Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Repite los datos al guardar (https://www.clubdelphi.com/foros/showthread.php?t=52400)

gsilvei 19-01-2008 17:14:40

Repite los datos al guardar
 
Hola a todos,
utilizo delphi7 e tablas .dbf,
cuando guardo registros de mi dbgrid em mi table1.dbf por primera vez funciona bien, ahora cuando modifico o adiciono un registro em mi dbgrid, surge un problema, y es que repite todos los datos del dbgrid y vuelve a salvarlos, es decir, si tengo:

dbgrid:
001 - teste
002 - varios
salva bien en mi table1

cuando adiciono:
001 - teste
002 - varios
003 - xxxxxx
me salva los 3 registros pero mi table1, queda asi:

001 - teste
002 - varios
001 - teste
002 - varios
003 - xxxxxx

mi funcion es:
Código Delphi [-]
procedure TFormCprograma.BtnSalvarClick(Sender: TObject);
begin
DBGrid3.Options := DBGrid3.Options + [dgMultiSelect];
  with DBGrid3.DataSource.DataSet do
    begin
      First;
    for vlLinha := 0 to RecordCount - 1 do
    begin
      DBGrid3.SelectedRows.CurrentRowSelected := True;
      Next;
    end;
    end;
      DBGrid3.SelectedRows.Refresh;
  if DBGrid3.SelectedRows.Count > 0 then
  begin
    for Idx := 0 to DBGrid3.SelectedRows.Count-1 do
    begin
     // posiciona o dataset de origem no "n" registro selecionado
      CDS.GotoBookmark(pointer(DBGrid3.SelectedRows.Items[Idx]));
      Table1.Append;
      Table1ALUNOMATRI.Value :=  TabGlobal.Dprograma.alunomatricula.Conteudo;
      Table1ALUMNOID.Value :=  TabGlobal.Dprograma.alumnoID.Conteudo;
      Table1DTINICIO.Value :=  TabGlobal.Dprograma.dt_inicio.Conteudo;
      Table1ID.Value :=  CDS.Fields[0].Value;
      Table1COD.Value :=  CDS.Fields[1].Value;
      Table1EXERCICIO.Value :=  CDS.Fields[2].Value;
      Table1TIEMPO.Value :=  CDS.Fields[3].Value;
      Table1.Post;
    end;
  end;
 
 
end;

gracias
saludos

ContraVeneno 19-01-2008 17:20:02

te agrega los tres porque le estas diciendo que los agregue todos:

Código Delphi [-]
 for Idx := 0 to DBGrid3.SelectedRows.Count-1 do begin
   Table1.Append;

ahí tu le estas diciendo que te agregue todos, desde el primero hasta el último


La franja horaria es GMT +2. Ahora son las 10:53:17.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi