Fórum Close de DataSet #269715
22/02/2005
0
li varios topicos aqui sobre clocar dataset.
funcionou,
porem, vejam o detalhe:
tenho um dataset.
cdsCloneItens.CloneCursor(cdsItens, True, True);
=>clonou perfeitamente
so que.
se eu fechar este cdsCloneItens, automaticamente, ele fecha o dataset de Origem, o cdsItens.
Nao posso fechar o dataset de origem, mas preciso fechar o dataset que recebeu a clonagem.
abaixo, vejam parte do codigo que digitei para testes
cdsCloneItens.CloneCursor(frmMenuCatalogo.cdsItens, True, True);
cdsCloneItens.DisableControls;
cdsCloneItens.First;
Forn := ´----´;
i := 0;
Memo1.Clear;
while not cdsCloneItens.Eof do
begin
if cdsCloneItensPRCODFORN.AsString <> Forn then
begin
Inc(i);
Forn := cdsCloneItensPRCODFORN.AsString;
memo1.Lines.Add(cdsCloneItensPRNOMEFORN.AsString);
end;
cdsCloneItens.Next;
end;
cdsCloneItens.EnableControls;
cdsCloneItens.EmptyDataSet;
cdsCloneItens.Close;
{aqui, ele ja fechou e zerou o dataset de Origem}
nas 3 linhas acima que está o problema.
Alguma ideia ou é assim mesmo ?
se for assim mesmo, nao vi objetivo na clonagem do dataset.
obrigado a todos.
Pedih
Curtir tópico
+ 0Posts
22/02/2005
Rômulo Barros
Gostei + 0
23/02/2005
Pedih
Preciso Clonar um ClientDataSet (os registros) e manter os datasets distintos.
tipo:
clientdataset1 -> clonar paara clientdataset2.
se eu fizer uma alteracao no clientdataset2, a mesma alteracao nao reflete no clientdataset1..
Obrigado. :roll:
Gostei + 0
23/02/2005
Paulo_amorim
Se você quer DataSet´s distintos, CloneCursor não resolve teu problema, pois cria dois ponteiros para o mesmo ResultSet compartilhado
Nesse caso, pode-se copiar através de um DataSetProvider:
cds1.Open; with TDataSetProvider.Create(Self) do begin DataSet := cds1; cds2.Data := Data; Free; end;
Isso deve funcionar. Caso dê erro postae que a gente tenta ajudar
Espero que ajude
Até+
Gostei + 0
24/02/2005
Pedih
cds1.Open; with TDataSetProvider.Create(Self) do begin DataSet := cds1; cds2.Data := Data; Free; end;
Paulo Amorin,
bom dia.
olha, nao deu certo.
detalhe:
nao to usando datasetprovider.
o cds1, é temporario (tá apenas em memoria), assim como o cds2 também.
O que sugere ?
Obrigado pela atencao.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)