Ver Mensaje Individual
  #14  
Antiguo 18-06-2015
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola fjcg02.

Otra situación que se te puede presentar, es agregar campos luego de haber creado el ClientDataSet. Para hacerlo sin perder los datos que llevas cargados, podes hacer como en este ejemplo:
Código Delphi [-]
procedure TForm1.Button2Click(Sender: TObject);
var
  cds : TClientDataSet;  // (me dan pereza los nombres largos)
  clon: TClientDataSet; // cds auxiliar
  i   : Integer;
begin
  cds  := ClientDataSet1;
  clon := TClientDataSet.Create(nil);
  try
    // Salvar datos anteriores
    clon.CloneCursor(cds, False, True );
    clon.First;
    // Agregar nuevos campos
    cds.Close;
    cds.FieldDefs.Update;
    cds.FieldDefs.Add('Campo3', ftCurrency, 0, False);
    cds.FieldDefs.Add('Campo4', ftFloat, 0, False);
    cds.CreateDataSet;
    cds.Open;
    // Recuperar los datos anteriores
    while not clon.Eof do
    begin
      cds.Append;
      cds.FieldByName('Campo1').AsInteger := clon.FieldByName('Campo1').AsInteger;
      cds.FieldByName('Campo2').AsString  := clon.FieldByName('Campo2').AsString;
      //...
      cds.Post;
      clon.Next;
    end;
    cds.First;
  finally
    clon.Free;
  end;
end;

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita