Fórum XML TClientDataSet Registro não é excluído #342456
11/06/2007
0
O problema é que quando excluo o registro beleza não aparece mais no meu CDS, mas fisicamente no arquivo ele ainda esta la, quando autero um registro uma nova linha é criada no XML, e um outro problema é que quando dou um close no CDS o arquivo perde o UTL8, e da problema de acentução.
Pesquisei aqui e todos falam para usar Logchanges:=false, depois de abrir o CDS, mas fiz isso e não resolvel, alguma forma especial, ou alguma outra forma de resolver isso ?
Atgomes
Curtir tópico
+ 0Posts
11/06/2007
Atgomes
Gostei + 0
14/06/2007
Khundalini
1) Quando vc diz UTL8, na verdade é UTF-8;
2) Pelo que deu pra deduzir, você estã carregando explícitamente o arquivo XML. Partindo deste fato, e também do suposto de que este XML já está no formato de XML datapacket do próprio ClientDataSet, após você fazer qualquer atividade de manutenção (inclusão, alteração ou exclusão), você deverá _obrigatoriamente_ seguir o seguinte roteiro:
ClientDataSet.SaveToFile(<nome_do_arquivo.xml>);
ClientDataSet.Close;
ClientDataSet.LoadFromFile(<nome_do_arquivo.xml>);
ClientDataSet.Open;
Se você estivesse usando transformações XML, através do componente TXMLTransformProvider, você poderia usar o método ApplyUpdates, que faria a atualização do arquivo XML de forma bastante transparente. Se este tópico sobre transformações XML lhe interessar, a Internet possui vasto conteúdo falando sobre o assunto.
Sds.,
Rubem Rocha
Manaus, AM
Gostei + 0
14/06/2007
Atgomes
Acabei descobrindo o grande problema e espero talvez ajudar qualquer um que tenha o mesmo.
Bem esta perfeitamente correto usar o comando Logchanges:=false, logo após a abertura do CDS, no meu caso o grande problema era que meus arquivos DataPacket XML ja estavam gerados no padrão Logchanges:=true, sena assim uma TAG chamda PARMS com uma série de números estava preenchida, a solução foi apagar todo o conteúdo desta TAG a PARMS e pronto o programa passou a excluir fisicamente os registros e passou a não duplicar nas alterações.
Quanto ao LoadFromFile e o SaveToFILE ja estou usando, muito obriga pela dica.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)