Exportar dados e importar dados utilizando ClientDataSet Delphi
Tenho uma aplicação na qual preciso gerar arquivos xml de uma tabela para fazer atualizações em outro BD.
Estou utilizando ClientDataSet com IBQuery e estou usando os seguintes comandos para gerar os arquivos.
Query.Open;
ClientDataSet.SaveToFile('C:\Arquivo.xml', dfXml);
Query.Close;
Até ai esta tudo certo, ele está salvando o arquivo, mas na hora de importar não estou conseguindo aplicar os dados.
Estou usando os seguintes comandos:
ClientDataSet.OPen;
ClientDataSet.LoadFromFile('C:\Arquivo.xml');
ClientDataSet.ApplyUpdates(-1);
Não dá nem um erro, mas não funciona...Alguma sugestão por favor ???
Quando se faz o loadfromfile ele não considera como insert, alguem sabe como realizar a gravação dos dados utilizando o clientDataSet com load.
Como alternativa, criei um outro Clientdataset e fui fazendo insert com o dados que foram carregados.
Mas se der para fazer com o prorio cds fica melhor.
Obrigado
Estou utilizando ClientDataSet com IBQuery e estou usando os seguintes comandos para gerar os arquivos.
Query.Open;
ClientDataSet.SaveToFile('C:\Arquivo.xml', dfXml);
Query.Close;
Até ai esta tudo certo, ele está salvando o arquivo, mas na hora de importar não estou conseguindo aplicar os dados.
Estou usando os seguintes comandos:
ClientDataSet.OPen;
ClientDataSet.LoadFromFile('C:\Arquivo.xml');
ClientDataSet.ApplyUpdates(-1);
Não dá nem um erro, mas não funciona...Alguma sugestão por favor ???
Quando se faz o loadfromfile ele não considera como insert, alguem sabe como realizar a gravação dos dados utilizando o clientDataSet com load.
Como alternativa, criei um outro Clientdataset e fui fazendo insert com o dados que foram carregados.
Mas se der para fazer com o prorio cds fica melhor.
Obrigado
Marcio Reis
Curtidas 0
Respostas
Marco Salles
18/09/2012
Tenho uma aplicação na qual preciso gerar arquivos xml de uma tabela para fazer atualizações em outro BD.
Estou utilizando ClientDataSet com IBQuery e estou usando os seguintes comandos para gerar os arquivos.
Query.Open;
ClientDataSet.SaveToFile('C:\Arquivo.xml', dfXml);
Query.Close;
Até ai esta tudo certo, ele está salvando o arquivo, mas na hora de importar não estou conseguindo aplicar os dados.
Estou usando os seguintes comandos:
ClientDataSet.OPen;
ClientDataSet.LoadFromFile('C:\Arquivo.xml');
ClientDataSet.ApplyUpdates(-1);
Não dá nem um erro, mas não funciona...Alguma sugestão por favor ???
Quando se faz o loadfromfile ele não considera como insert, alguem sabe como realizar a gravação dos dados utilizando o clientDataSet com load.
Como alternativa, criei um outro Clientdataset e fui fazendo insert com o dados que foram carregados.
Mas se der para fazer com o prorio cds fica melhor.
Obrigado
Estou utilizando ClientDataSet com IBQuery e estou usando os seguintes comandos para gerar os arquivos.
Query.Open;
ClientDataSet.SaveToFile('C:\Arquivo.xml', dfXml);
Query.Close;
Até ai esta tudo certo, ele está salvando o arquivo, mas na hora de importar não estou conseguindo aplicar os dados.
Estou usando os seguintes comandos:
ClientDataSet.OPen;
ClientDataSet.LoadFromFile('C:\Arquivo.xml');
ClientDataSet.ApplyUpdates(-1);
Não dá nem um erro, mas não funciona...Alguma sugestão por favor ???
Quando se faz o loadfromfile ele não considera como insert, alguem sabe como realizar a gravação dos dados utilizando o clientDataSet com load.
Como alternativa, criei um outro Clientdataset e fui fazendo insert com o dados que foram carregados.
Mas se der para fazer com o prorio cds fica melhor.
Obrigado
Eu acho que vc deve primeiro carregar
ClientDataSet.LoadFromFile('C:\Arquivo.xml');
e depois abri
ClientDataSet.OPen;
Agora so uma pergunta , porque que vc esta imediatamente applicando um ApplyUpdates ???
No momento que vc fez as operações vc esta com o clientDataSet carregado e po que ve imediatamente esta querendo comitar ?
GOSTEI 0
Marcio Reis
18/09/2012
Imagine que tenho uma base de dados em uma maquina A e preciso exportar os dados para importa-los em uma maquina B.
Na maquina A eu realizo
clientdataset.Open;
clientdataset.savefromfile('c:\temp\teste.cds');
clientdataset.close;
Na maquina B apos receber os arquivo, tenho um aplicativo que estou tentando realizar a importação dos dados para a base de dados local da maquina.
Ai o que eu estou tentando fazer,
clientdataset.loadfromfile('c:\temp\teste.cds') e gostaria de saber se existe alguma forma de inserir estes dados apos o loadfromfile, ou se tenho que usar outros componentes, eu fiz mas com outro clientdataset, realizando o append e passando dos campos, em uma rotina que fiz para pegar os campos e associa-los.
Esta é minha duvida, como comitar os dados carregados no clientdataset apos o loadfrom ?
Marcio
Na maquina A eu realizo
clientdataset.Open;
clientdataset.savefromfile('c:\temp\teste.cds');
clientdataset.close;
Na maquina B apos receber os arquivo, tenho um aplicativo que estou tentando realizar a importação dos dados para a base de dados local da maquina.
Ai o que eu estou tentando fazer,
clientdataset.loadfromfile('c:\temp\teste.cds') e gostaria de saber se existe alguma forma de inserir estes dados apos o loadfromfile, ou se tenho que usar outros componentes, eu fiz mas com outro clientdataset, realizando o append e passando dos campos, em uma rotina que fiz para pegar os campos e associa-los.
Esta é minha duvida, como comitar os dados carregados no clientdataset apos o loadfrom ?
Marcio
GOSTEI 0
Daniel Santos
18/09/2012
Sim, você deve usar o XML Mapper Tools->XML Mapper, com ele você consegue mapear uma XML para usar no CLientDataSet, ele é bem intuitivo, você deve criar 2 arquivos um do XML para o CDS e outro do CDS para o XML, bem simples.
GOSTEI 0
Marco Salles
18/09/2012
Sim, você deve usar o XML Mapper Tools->XML Mapper, com ele você consegue mapear uma XML para usar no CLientDataSet, ele é bem intuitivo, você deve criar 2 arquivos um do XML para o CDS e outro do CDS para o XML, bem simples.
Tem que saber se ele esta querendo no formato xml datapacker ou não ... Caso seje xml puro ai sim pode-se utilizar o mapeador .
Fora isto este processo é direto
GOSTEI 0