ClientDataSet com um único registro

Delphi

07/02/2011

estou preparando um ClientDataSet para manter um único registro, no qual eu gravo em um arquivo XML através do SaveToFile,

só preciso manter uma única linha, pois trata-se de parâmetros de conexão para o SQLConnection,

eu uso o LoadFromFile, depois um Open no CDS, altero com Edit, e dou o Post e finalizo com SaveToFile, quando vou conferir o resultado, editando o XML pelo notepad, aparece outras linhas (cadastros) um para cada vez que foi salvo.

Como forçar o CDS a manter apenas uma linha? lembrando que eu não dou nenhum Insert, apenas o Edit para alterar.

abraços.
Enio Marconcini

Enio Marconcini

Curtidas 0

Melhor post

Marco Salles

Marco Salles

07/02/2011

Qnt a isto não tem problema ... Essa linhas que aparecem é um mecanismo interno do clientDataset para qnd se comunicar com o DataSetProvider ele sabe o que cada uma dessas linhas fez ou faz( se sofreram , edit , insert ou delete)   Enfim , isto é interno do ClientDataSet afinal ele foi concebido para trabalhar desconectado e possibilitar depois a conexão com o Servidor   Porém este não é o seu caso .. Então vc tem que apagar essas linhas  .. Qnd vc da um ApplayUpdates essas linhas são apagadas , mas vc não pode dar um applayUpdates por estar trabalhando com MyBase ( No caso simulando um Ini mais Moderno ).   Então vc use o método ClientDataSet1.MergeChangeLog;   Antes do Edit vc da um  ClientDataSet1.MergeChangeLog;
GOSTEI 1

Mais Respostas

Enio Marconcini

Enio Marconcini

07/02/2011

Opa, beleza grande Marcos, vou encerrar meu expediente norturno agora rs, e amanhã eu testo.... você manja pacas einh, por acaso ajudou na elaboração do Delphi? rsrs

Cara, estou adorando trabalhar com dbExpress e ClientDataSet, muitos recursos interessantes... estou usando o MasterSource, nunca tinha usado, é muito prático para mestre/detalhe.

abraços
GOSTEI 1
Marco Salles

Marco Salles

07/02/2011

Depois deste elógio tive ate que correr para testar ..   pois bem , não é no inicio ... é antes do SaveToFile   ClientDataSet1.Edit;
ClientDataSet1.MergeChangeLog;
ClientDataSet1.SaveToFile('temp.xml');   tem uma situãção que fiz com o clientDataSet MyBase eu usava o ChangeCount para testar se houve ou não edição então nofinal do processo eu testava   if clientDataSet.ChangeCount > 0 Then  >>>> Fazer   Mas eu entrava no Aplicativo e sai e não fazia nada e ele acusava clientDataSet.ChangeCount > 0 .. Que pandemônio... Abri até um tópico na época para a situação Mas não obtive resposta No fim , mexendo para lá e mexendo para cá resolvi compartilhar a solução para todos http://marcosalles.wordpress.com/2009/10/17/clientdataset-mybase-delta-data-changecount/    
Cara, estou adorando trabalhar com dbExpress e ClientDataSet, muitos recursos interessantes... estou usando o MasterSource, nunca tinha usado, é muito prático para mestre/detalhe.
Realmente , nesta etápa o Delphi mostra todo o seu estilo RAD de facilitar as "coisas.." .

 
GOSTEI 1
José

José

07/02/2011

Este tópico esta sendo fechado por inatividade. Se necessário, sinalizar para que seja reaberto ou abrir um novo.
GOSTEI 0
POSTAR