Limpar ClientDataSet ...
02/05/2005
0
O que posso fazer para limpar os dados do ClientDataSet da memória para que quando for usar novamente ele vir limpo?
Cicerojr
Post mais votado
13/04/2017
As vezes acontece, depois de muitos FieldDefs.CLEAR; e FieldDefs.Add ficar alguma sujeira nas propriedades de Fields, oq faz com que o CreateDataSet apresente erro mesmo depois da estrutura refeita.
Para corrigir isso faça:
cds.Fields.CLEAR;
e também
cds.FieldDefs.CLEAR;
o CreateDataSet não apresentara mais o problema.
Rafael Marin
Mais Posts
02/05/2005
Juliopedroni
23/07/2006
Dpinho
Mesmo fechando e abrindo novamente o clientedatset ele sempre retornar um registro antigo.
como fazer para limpa-lo
24/07/2006
Raserafim
O meu eu resolvi assim.
24/07/2006
Dpinho
Na verdade meu CDS não esta ligado a nenhuma tabela, ou query esta ligado a um DAtaSource e em uma grid, ele é utilizado como cache para os itens da nota fiscal.
24/07/2006
Marcelo_mileris
CDS.Close; CDS.CreateDataSet;
Isso limpará a CDS e a deixará aberta
23/08/2006
Dpinho
CDS.Close; CDS.CreateDataSet;
Esta ligado em um query
preciso limpar estes cds criado em memoria (Buffer), ja fechei, tendo fazer um loop, mas sempre fica um item gravado, engraçado que tenho em uma rotina o mesmo codigo e ele limpa na saida normal... preciso de ajuda
23/08/2006
Marco Salles
coloque aqui os eus componentes de acesso , bem com a sua base de dados(Firebird, MyBase etc...) por favor
23/08/2006
Dpinho
coloque aqui os eus componentes de acesso , bem com a sua base de dados(Firebird, MyBase etc...) por favor[/quote:e50e92f2dc]
me desculpa, Este cds esta ligado a um datasource, ele recebe os itens do cupom fiscal e vai mostrando em uma query, no final faço a leitura e gravo na tabela do banco interbase, meu problema esta quando tenho que cancelar a venda e começar outra, estou utilizando um loop, mas sempre sobra um item.
Ja tentei dar um close, acitve = false, mas nada resolveu
03/03/2016
Sergio Agostinho
Nessa rotina eu não utilizo controle de transação nem ApplyUpdates, simplesmente preencho a grade e passo como parâmetro para executar uma procedure no banco (Oracle), assim que a base é atualizada eu preciso atualizar a informação na tela.
Tenho cdsCotacao e um cdsCotacaoItem como master detail, dbexpress campo Datasetfield.
Para resolver isso bastou eu enviar o seguinte comando após cada item inserido :
cdsCotacao.MergeChangeLog;
cdsCotacao.Refresh;
O Comando MergeChangeLog dá um reset no clientdataset para ele não controlar e permitir o refresh.
Não se esqueçam de configurar os campos parametros do detalhe ProviderFlags - pfInkeys ;
Espero ter ajudado os colegar.
03/03/2016
Marco Antônio
Bom, na verdade clientDataSet não é ligado a DataSource, e sim o DataSource que é linkado ao ClientDataSet.
Pelo que entendi vc deve estar utilizando de ClientDataSet 'Virtual'. Correto?
Não está utilizando de nenhum artifício para clonar o ClientDataSet?
Desculpa estas perguntas. Mas até onde eu uso o ClientDataSer 'virtual' e se for esse o seu caso. Confesso que nunca tive problemas e EmptyDataSet é
a forma mais correta para a rotina desejada.
Particularmente eu utilizo os clientDataSet 'virtuais' criando em tempo de execução.
Peço que coloque todo o font se possível para q possamos testar melhor sua situação.
Abc.
23/04/2017
Augusto Santana
As vezes acontece, depois de muitos FieldDefs.CLEAR; e FieldDefs.Add ficar alguma sujeira nas propriedades de Fields, oq faz com que o CreateDataSet apresente erro mesmo depois da estrutura refeita.
Para corrigir isso faça:
cds.Fields.CLEAR;
e também
cds.FieldDefs.CLEAR;
o CreateDataSet não apresentara mais o problema.
Rmadmac
mesmo o post sendo antigo... me ajudou muito sua resposta... obrigado.
Clique aqui para fazer login e interagir na Comunidade :)