Copiar fields de uma query para um dataSet

21/07/2008

4

Olá amigos, estou precisando copiar um dataSet que é passado por parâmetro.

procedure TExcelWriter.setDataSet(dataSet: TDataSet);
var
  dataSetProvider: TDataSetProvider;
  clientDataSet: TClientDataSet;
  i: Integer;
begin
  //Essa foi a única forma que encontrei de copiar os dados para o dataset local
  //Essa é uma forma de não depender de dataset externo.
  dataSetProvider := TDataSetProvider.Create(nil);
  dataSetProvider.DataSet := dataSet;
  clientDataSet := TClientDataSet.Create(nil);
  clientDataSet.SetProvider(dataSetProvider);
  clientDataSet.Active := True;
  for i := 0 to dataSet.FieldCount - 1 do
    clientDataSet.Fields[i].DisplayLabel := dataSet.Fields[i].DisplayLabel;
  Self.localDataSet := clientDataSet;
end;



gostaria de saber se é possível copiar os fields do dataSet para o clientDataSet sem tem que fazer um laço e usando todas as propiedades, assm como eu fiz com a displayLabel aqui
  for i := 0 to dataSet.FieldCount - 1 do
    clientDataSet.Fields[i].DisplayLabel := dataSet.Fields[i].DisplayLabel;



Responder