Fórum Importando XML para Firebird #428824
15/11/2012
0
porfavor alguem me ajude..Aguardo
Rodrigo Bernal
Curtir tópico
+ 0Post mais votado
19/11/2012
Você já tem o banco de dados em Firebird e com a tabela na mesma estrutura?
Me fala isso que daí te passo um código simples aqui pra gravar no banco.
Claudia Nogueira
Gostei + 1
Mais Posts
16/11/2012
Claudia Nogueira
Só copiar uma parte dele e postar aqui.
Gostei + 0
16/11/2012
Rodrigo Bernal
<?xml version="1.0" standalone="true"?>
-<Produtos> -<Produto ProdutoID="0"> <Codigo>00000000000000001</Codigo> <Descritivo>PAO FRANCES KG F.P. </Descritivo> <PrecoUnitario>5,99</PrecoUnitario> <Totalizador>09</Totalizador> <Pesado>1</Pesado> <Departamento>015</Departamento> <Plu>0</Plu> <Preco2>0</Preco2> <Preco3>0</Preco3> <Preco4>0</Preco4> <IMEI>0</IMEI> <ICCID>0</ICCID> </Produto> -<Produto ProdutoID="1"> <Codigo>00000000000000002</Codigo> <Descritivo>TOMATE DEBORA kg </Descritivo> <PrecoUnitario>2,59</PrecoUnitario> <Totalizador>05</Totalizador> <Pesado>1</Pesado> <Departamento>011</Departamento> <Plu>0</Plu> <Preco2>0</Preco2> <Preco3>0</Preco3> <Preco4>0</Preco4> <IMEI>0</IMEI> <ICCID>0</ICCID>
segue ai
Gostei + 0
18/11/2012
Carlos Bernardo
Gostei + 0
19/11/2012
Rodrigo Bernal
OU EXPORTAR PARA O EXCELL E DEPOIS JOGAR NO BANCO...
Gostei + 0
20/11/2012
Rodrigo Bernal
Gostei + 0
20/11/2012
Carlos Bernardo
Ex:.
CDS_TABLE.OPEN;
CDS_XML.OPEN;
CDS_XML.FIRST;
WHILE NOT CDS_XML.EOF DO
BEGIN
CDS_TABLE.APPEND;
CDS_TABLE.FIELDBYNAME('CAMPO1').ASINTEGER := CDS_TABLE.FIELDBYNAME('CAMPO1').ASINTEGER ;
CDS_TABLE.FIELDBYNAME('CAMPO2').ASSTRING := CDS_TABLE.FIELDBYNAME('CAMPO2').ASSTRING ;
CDS_TABLE.FIELDBYNAME('CAMPO3').VALUE := CDS_TABLE.FIELDBYNAME('CAMPO3').VALUE ;
CDS_TABLE.POST;
CDS_TABLE.APPLYUPDATES(0);
CDS_XML.NEXT;
END;
Pode ser que exista outra forma, mas eu faço assim...
Gostei + 0
20/11/2012
Carlos Bernardo
Ex:.
CDS_TABLE.OPEN;
CDS_XML.OPEN;
CDS_XML.FIRST;
WHILE NOT CDS_XML.EOF DO
BEGIN
CDS_TABLE.APPEND;
CDS_TABLE.FIELDBYNAME('CAMPO1').ASINTEGER := CDS_TABLE.FIELDBYNAME('CAMPO1').ASINTEGER ;
CDS_TABLE.FIELDBYNAME('CAMPO2').ASSTRING := CDS_TABLE.FIELDBYNAME('CAMPO2').ASSTRING ;
CDS_TABLE.FIELDBYNAME('CAMPO3').VALUE := CDS_TABLE.FIELDBYNAME('CAMPO3').VALUE ;
CDS_TABLE.POST;
CDS_TABLE.APPLYUPDATES(0);
CDS_XML.NEXT;
END;
Pode ser que exista outra forma, mas eu faço assim...
Xi falha nossa, ele recebe do CDS_XML
CDS_TABLE.OPEN;
CDS_XML.OPEN;
CDS_XML.FIRST;
WHILE NOT CDS_XML.EOF DO
BEGIN
CDS_TABLE.APPEND;
CDS_TABLE.FIELDBYNAME('CAMPO1').ASINTEGER := CDS_XML.FIELDBYNAME('CAMPO1').ASINTEGER ;
CDS_TABLE.FIELDBYNAME('CAMPO2').ASSTRING := CDS_XML.FIELDBYNAME('CAMPO2').ASSTRING ;
CDS_TABLE.FIELDBYNAME('CAMPO3').VALUE := CDS_XML.FIELDBYNAME('CAMPO3').VALUE ;
CDS_TABLE.POST;
CDS_TABLE.APPLYUPDATES(0);
CDS_XML.NEXT;
END;
Gostei + 0
20/11/2012
Claudia Nogueira
1 IbDataBase
1 IbTransaction
1 IbTable (ligada na tabela que vai receber as informações do ClientDataSet com mesma estrutura)
1 ClientDataSet que está ligado ao XML.
Var
i : Integer;
begin
IBTable1.Close;
IBTable1.Open;
ClientDataSet1.Close;
ClientDataSet1.Open;
ClientDataSet1.First;
while not ClientDataSet1.Eof do
begin
IBTable1.Insert;
for i := 0 to ClientDataSet1.FieldCount - 1 do
IBTable1.FieldByName(ClientDataSet1.Fields[i].FieldName).Value := ClientDataSet1.FieldByName(ClientDataSet1.Fields[i].FieldName).Value;
IBTable1.Post;
ClientDataSet1.Next;
end;
IBTransaction1.CommitRetaining;
end;
Gostei + 1
Clique aqui para fazer login e interagir na Comunidade :)