ClientDataset para outro de uma só vez

Delphi

16/06/2012

Como eu faço para inserir todo o conteúdo de um clientdaset para outro de uma só vez, sem precisar executar linha por linha, dentro de um looping.
Jose Boas

Jose Boas

Curtidas 0

Respostas

Marco Salles

Marco Salles

16/06/2012

Existe duas formas . Depende da necessidade

A propriedade Data ou Utlizar o metodo CloneCursor

GOSTEI 0
Jose Boas

Jose Boas

16/06/2012

Poderia me mandar um exemplo de utilização ?
GOSTEI 0
Marco Salles

Marco Salles

16/06/2012

Poderia me mandar um exemplo de utilização ?


Para utilizar o CloneCursor vc pode ver em

http://marcosalles.wordpress.com/2011/02/17/clonecursor-como-definir-os-parametros-reset-keepsettings/

Ja a propriedade Data é so fazer

ClientDataSet2.Data:=ClientDataSet1.Data;

com o clientdataset1 aberto e o clientadatset2 fechado

ps) Porém o clonecursro e o a Propriedade data apesar de ter o mesmo efeito são distintas
pois o cloenCurosr não duplica os dados e simpesmente tem-se um cursor indepedente da Fonte de dados Original
GOSTEI 0
Gustavo Bretas

Gustavo Bretas

16/06/2012

Eu fiz uma função para quando eu preciso adicionar informações de uma pesquisa para outro DataSet, se ajudar, segue:

// -> Adiciona os Items de um DataSet em outro
procedure pAddItemsDataSetToDataSet(nFromDataSet, nToDataSet : TDataSet);
var
  i, nRecNo : Integer;
begin
  nRecNo := nFromDataSet.RecNo;
  nFromDataSet.DisableControls;
  nFromDataSet.First;
  while not nFromDataSet.Eof do
    begin
    if (nToDataSet.State in [dsEdit, dsInsert]) then
      nToDataSet.Cancel;
    nToDataSet.Append;
    for i := 0 to nFromDataSet.Fields.Count - 1 do
      begin
      if Assigned(nToDataSet.FindField(nFromDataSet.Fields[i].FieldName)) then
        nToDataSet.FieldByName(nFromDataSet.Fields[i].FieldName).Value := nFromDataSet.Fields[i].Value;
      end;
    nToDataSet.Post;
    nFromDataSet.Next;
    end;
  nFromDataSet.RecNo := nRecNo;
  nFromDataSet.EnableControls;
end;


Só lembrando que ela só adiciona a informação caso os nomes dos Fields sejam iguais!
GOSTEI 0
Jose Boas

Jose Boas

16/06/2012

Já resolvi . Obrigado
GOSTEI 0
Marco Salles

Marco Salles

16/06/2012

Já resolvi . Obrigado


Então , mas é bom dar o feedback de com ovc resolveu??

Propriedade Data Ou CloneCursor ou Xmldata , ou outra solução ??
GOSTEI 0
POSTAR