Salvar XML no Banco de Dados

Delphi

13/08/2010

Olá,

Tenho uma aplicação onde o vendedor possui um notebook e sai efetuando vendas e quando ele volta pra empresa,  pego as vendas dele (XML padrao borland) e carrego no sistema da empresa (cds.Load...). Só que não consigo postar esses novos dados no banco, ele fica só em memória. Gostaria de importar esse XML e gravar no banco.

Grato pela ajuda.


Att.
Isandro Rogério

Isandro Rogério

Curtidas 0

Melhor post

Marco Salles

Marco Salles

13/08/2010

Maneira correta de se trabalhar deconectado é usar o Delta e o Data De Cds   Desconectado   Vc esta com os dados em Memoria , faz as alteraçoes ( Exlcusões , Alteraçoes , Inserçoes ) No fim Vc Armazena essas Alteraçoes ( e não toda aTabela ) No Arquivo   Exemplo  
procedure TForm3.SalvandoOdelta(Sender: TObject);
var
cds:TClientDataSet;
begin
cds:=TClientDataSet.Create(nil);
cds.Data:=ClientDataSet1.Delta;
cds.SaveToFile('C:\zPodeApagar\Exemplo.xml', dfXMLUTF8); //salvando o Delta
cds.Free;
ClientDataSet1.MergeChangeLog;
ClientDataSet1.Close;
end;
    De volta na empresa , vc esta com os Dados Alterados no Arquivo 'C:\zPodeApagar\Exemplo.xml' .. pode ser um PenDrive , ou em uma midia qualquer   Ai vc recupera esse Delta  
procedure TForm3.RecuperandoDelta(Sender: TObject);
begin
Cds:=TClientDataSet.Create(self);
try
cds.Close;
EMPLOYEE_2_1_FDB.KeepConnection:=True; //Abre a conexão
cds.LoadFromFile('C:\zPodeApagar\Exemplo.xml');
cds.Open;
ClientDataSet1.Data:=cds.Delta;  //recuperando o Delta
ClientDataSet1.ApplyUpdates(0); //persistindo as alteraçoes
finally
cds.Free;
end;
end;
   
GOSTEI 1

Mais Respostas

Eriley Barbosa

Eriley Barbosa

13/08/2010

Após fazer o Load, não é só fazer um Loop no CDS e gravar no banco? Atenciosamente   Eriley
GOSTEI 0
Isandro Rogério

Isandro Rogério

13/08/2010

Queria saber se tem alguma maneira de fazer isso sem usar loop pois tenho tabelas filhas linkadas e queria economizar processamento... acho que deve ter uma maneira de gravar sem loop... algo semelhante ao applyupdates, sei la...

mas valeu a resposta.

att
GOSTEI 0
Marcos Iwazaki

Marcos Iwazaki

13/08/2010

vc deve carregar o xml em um cdsLocale depois abrir um CdsBanco ligado no seu banco e inserir os dados
GOSTEI 0
Isandro Rogério

Isandro Rogério

13/08/2010

num tem como ler o xml no proprio cdsBanco nao japoneiz? as estruturas sao identicas!

entendeu?

;)
GOSTEI 0
POSTAR