Salvar XML no Banco de Dados
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.
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
Curtidas 0
Melhor post
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
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.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;
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
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
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
mas valeu a resposta.
att
GOSTEI 0
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
13/08/2010
num tem como ler o xml no proprio cdsBanco nao japoneiz? as estruturas sao identicas!
entendeu?
;)
entendeu?
;)
GOSTEI 0