LE A TABELA E GRAVAR EM XML

MOREIRA 26/09/2010 02:49:08
#353855
Bom Pessoal.. fiz uma gambi... e gostaria de sugestões, o que deve ser melhorado nessa rotina..
estou lendo a tabela e gravando em XML..

Private Sub CmdGerar_Xml_Click()
Set Rst = New ADODB.Recordset
Sql = [Ô]Select * From Tbl_CadProdutos Order By Descricao Asc[Ô]
Rst.Open Sql, Conexao, 3

Open App.Path & [Ô]\Dados.xml[Ô] For Output As #1
Print #1, [Ô]<?xml version=[ô]1.0[ô] encoding=[ô]ISO-8859-1[ô]?>[Ô]
Print #1, [Ô][Ô]
Print #1, [Ô]<Cadastro>[Ô]
If Not Rst.EOF Then
Do While Not Rst.EOF

Print #1, [Ô][Ô]
Print #1, [Ô] <Id>[Ô] & Rst!Id_Produto & [Ô]</Id>[Ô]
Print #1, [Ô] <CodBarra>[Ô] & Rst!CodBarra & [Ô]</CodBarra>[Ô]
Print #1, [Ô] <Descricao>[Ô] & Rst!Descricao & [Ô]</Descricao>[Ô]
Print #1, [Ô] <Venda>[Ô] & Rst!Vlr_Venda & [Ô]</Venda>[Ô]
Print #1, [Ô] <Compra>[Ô] & Rst!Vlr_Compra & [Ô]</Compra>[Ô]
Rst.MoveNext
Loop
MsgBox ([Ô]Arquivo Gerado e Exportado com Sucesso !![Ô]), vbInformation, [Ô]ATENÇÃO[Ô]
Else
MsgBox [Ô]Não há registros no arquivo para gerar XML.[Ô], vbExclamation, [Ô]ATENÇÃO[Ô]
End If

Print #1, [Ô]</Cadastro>[Ô]
Close #1
Rst.Close
Set Rst = Nothing
End Sub


MARCELO.TREZE 26/09/2010 10:32:11
#353858
o código ta bom , mas tenho uma pergunta, quando gera o arquivo, ele não mostra duas mensagens ao invés de apenas uma delas?
SAMUKA 26/09/2010 10:52:08
#353865
MOREIRA, nunca testei pra ver como funciona. Mas o RecordSet do ADO permite salvar direto em XML

Experimenta testar isso pra ver se funciona:


Private Sub CmdGerar_Xml_Click()
Set Rst = New ADODB.Recordset
Sql = [Ô]Select * From Tbl_CadProdutos Order By Descricao Asc[Ô]
Rst.Open Sql, Conexao, 3
Rst.Save App.Path & [Ô]\Dados.xml[Ô], adPersistXML
Rst.Close
Set Rst = Nothing
End Sub
MOREIRA 26/09/2010 11:30:08
#353871
olá MARCELO-TREZE, blz, mostra apenas uma mensagem ao gerar o arquivo.... --->> MsgBox ([Ô]Arquivo Gerado e Exportado com Sucesso !![Ô]), vbInformation, [Ô]ATENÇÃO[Ô]

Agora caso nao tenha nada na tabela , mostrar --- >>> MsgBox [Ô]Não há registros no arquivo para gerar XML.[Ô], vbExclamation, [Ô]ATENÇÃO[Ô]

na verdade essa ultima mensagem nem seria preciso..





TECLA 26/09/2010 11:30:10
#353872
Citação:

:
MOREIRA, nunca testei pra ver como funciona. Mas o RecordSet do ADO permite salvar direto em XML

Experimenta testar isso pra ver se funciona:


Private Sub CmdGerar_Xml_Click()
Set Rst = New ADODB.Recordset
Sql = [Ô]Select * From Tbl_CadProdutos Order By Descricao Asc[Ô]
Rst.Open Sql, Conexao, 3
Rst.Save App.Path & [Ô]Dados.xml[Ô], adPersistXML
Rst.Close
Set Rst = Nothing
End Sub



Funciona sim, sem problemas.
Inclusive, dá pra você LER um arquivo XML usando o RECORDSET.
Veja o exemplo completo aqui.
MOREIRA 26/09/2010 11:50:41
#353875
olá SAMUKA, esse exemplo que vc postou, está criando com a estrutura da tabela completa... é isso mesmo...
SAMUKA 26/09/2010 17:46:09
#353890
Certo, caso você queira apenas alguns campos, coloque os campos no select.

Exemplo:

[Ô]Select Id_Produto, CodBarra, Descricao, Vlr_Venda, Vlr_Compra From Tbl_CadProdutos Order By Descricao Asc[Ô]
MOREIRA 26/09/2010 18:44:43
#353894
olá SAMUKA, funcionou blz, mas.................. caso já exista o arquivo no diretório.. caso não exista, está dando erro (File Already exists).. no meu caso Dados.xml..

Set Rst = New ADODB.Recordset
Sql = [Ô]Select Id_Produto, CodBarra, Descricao, Vlr_Venda, Vlr_Compra From Tbl_CadProdutos Order By Descricao Asc[Ô]
Rst.Open Sql, Conexao, 3
Rst.Save App.Path & [Ô]Dados.xml[Ô], adPersistXML
Rst.Close
Set Rst = Nothing
SAMUKA 26/09/2010 20:58:37
#353899
Resposta escolhida
Pra esse problema não tem jeito. Vai ser preciso testar antes a existencia do arquivo.
Tópico encerrado , respostas não são mais permitidas