Um recurso interessante no uso do ClientDataSet é a clonagem de informações de um outro ClientDataSet. Para isso usamos método CloneCursor, responsável para copiar os dados de um componente para outro.
Vamos entender sua funcionalidade
procedure CloneCursor(Source: TCustomClientDataSet; Reset: Boolean;
KeepSettings: Boolean = False);
Podemos notar que o método recebe 3 parâmetros, logo, no primeiro
parâmetro “Source”, devemos informar o ClientDataSet que
vai ser clonado. O segundo e o terceiro parâmetros, respectivamente “Reset” e “KeepSettings”,
são booleanos. Se “Reset” e “KeepSettings” estão
false, as propriedades do ClientDataSet de origem são copiadas diretamente
para o ClienDataSet de destino. Propriedades como RemoteServer, ProviderName,
IndexName, Filter, Filtered, MasterSource, MasterFields e ReadOnly. Caso “Reset” estiver
true, as propriedades serão passadas para o ClientDataSet de destino
com seus valores Default. Se somente “KeepSettings” estiver true,
certos valores e índices do clone não serão
alterados.
Vamos a um exemplo. Num form, insira um ClientDataSet, dois DataSources, dois
DBGrid e um Button. Faça a conexão a partir da listagem abaixo
no Object Inspector:
DBGrid1 -> propriedade DataSoutce = DataSource1
DataSource1 -> propriedade Dataset = ClientDataSet1
DBGrid2 -> propriedade DataSource = DataSource2
No ClientDataSet1, clique com o botão direito e selecione a opção “Load
from Mybase Table”. Utilizaremos o exemplo Employee.xml no diretório
Arquivos de Programas\Arquivos Comuns\Borland Shared\Data. Logo os dados estarão
sendo exibidos no DBGrid1.
Clique duas vezes no Button e insira o seguinte código listado:
procedure TForm1.Button1Click(Sender: TObject);
var
Clone: TClientDataSet;
begin
Clone := TClientDataSet.Create(nil);
try
Clone.CloneCursor(ClientDataSet1, false, false);
DataSource2.DataSet := Clone;
finally
//Clone.Free;
//A linha está comentada para que você possa visualizar no DBGrid o
//o resultado da Clonagem. Entretanto, sabemos que é fundamental
//destruir os objetos ao término de seu uso.
end;
end;
Compile e clique no botão que vai transferir todas as informações
de um ClientDataSet que está no DBGrid1 para o DBGrid2.
Você também pode manipular os dados no Clone. De agora pra frente
vá
conforme sua imaginação!
Espero ter ajudado com essa facilidade que a Borland desenvolveu pra gente.
Até a
próxima!
Ediberto Alves
Contato: ediberto@aweb.eti.br
Usuário: edibertoalves
|