Fórum ClientDataSet pulando registros #593166

15/05/2018

0

Ola tenho um ClientDataSet que possui 85 registros, esse cds é criado em tempo de execução, quando eu percorro esse cds ele inicia com o RecNo no 1 o que está certo e ao usar o Next ele vai para o 2, até ai tudo certo porém na terceira vez ao da o Next ele avança para o registro 17 e depois já vai para o 85. Alguem poderia me ajudar com essa questão?
Desde já agradeço!
Brendo

Brendo

Responder

Posts

16/05/2018

Raimundo Pereira

Bom dia.
Fiz um teste aqui e funciona como o esperado.

Como você não postou seu código segue o teste que eu fiz.

  var     cdsTemp   : TClientDataSet;
          dsTemp    : TDataSource;
          Grid_Temp :TDBGrid;



procedure TFP.Criar_CDS;
begin
  cdsTemp := TClientDataSet.Create(nil);
  cdsTemp.Close;
  cdsTemp.FieldDefs.Clear;
  cdsTemp.FieldDefs.add('ID',ftInteger);
  cdsTemp.FieldDefs.add('caminhoIM',ftString,100);

  cdsTemp.CreateDataSet;

  dsTemp := TDataSource.Create(nil);
  dsTemp.DataSet := cdsTemp;

  Grid_Temp := TDBGrid.Create(nil);
  Grid_Temp.DataSource:=dsTemp;
  Grid_Temp.Align:=alBottom;
  Grid_Temp.Parent:=fp;
  Grid_Temp.Visible:=true;
  cdsTemp.open;

end;

procedure TFP.BTN_INCLUIRClick(Sender: TObject);
var
  i, o: integer;

begin

  i := 85;
  for o := 0 to i do
  begin

    cdsTemp.open;
    cdsTemp.Insert;
    cdsTemp.FieldByName('ID').AsInteger := o;
    cdsTemp.FieldByName('caminhoIM').AsString := 'C:\\APLIC\\TESTE' + IntToStr(o);
    cdsTemp.Post;

    cdsTemp.Close;
    cdsTemp.open;
    cdsTemp.First;
  end;
end;

procedure TFP.BTN_NEXTClick(Sender: TObject);
begin
  cdsTemp.Next;

end;

Responder

Gostei + 0

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

Aceitar