Tenho salvo XMLs em banco MySql.
O problema é: conjunto de caracteres.
É complicado mexer com isso.
Fica dependente do conjunto do Harbour, do conjunto do ADO, e do conjunto do MySql.
Para notas emitidas, pelo sistema, eu já limito quais os caracteres podem ser usados.
Mas nota de fornecedor, pode conter caracteres especiais.
Como fazer pra isso dar certo?
- Usando ADO
- Que caracteres usar no banco
- Algum parâmetro adicional na string de conexão
- Alguma conversão no Harbour
Obs. pra caracteres especiais, uso o \ na string, o banco está como UTF-8, mas mesmo assim dá diferença em ã por exemplo, onde no XML tem Chr(195)+"ã"
Harbour X NFE X MySql
Moderador: Moderadores
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Harbour X NFE X MySql
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour X NFE X MySql
Olá, José Quintas
Para evitar este tipo de situação o correto e transformar todos os caracteres em hexadecimal e ai salva no mysql, quando precisar da informação e só transformar em decimal.
Eu fiz assim para salvar imagem JPG no mysql.
Marcio Souza
Para evitar este tipo de situação o correto e transformar todos os caracteres em hexadecimal e ai salva no mysql, quando precisar da informação e só transformar em decimal.
Eu fiz assim para salvar imagem JPG no mysql.
Marcio Souza
Harbour 3.2 + Minigui Extended 16 + xDev
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Harbour X NFE X MySql
Isso vai dobrar o tamanho dos XMLs, e vai necessitar conversão...
Mas pelo menos vai ser uma solução.
Talvez no XML compense uma mistura, igual acontece com página de internet, em caracteres diferentes usar "e comercial" + hexa
O negócio agora vai planejar ser a mudança durante o uso.
Provavelmente uma flag pra indicar se o registro está convertido.
Valeu.
Mas pelo menos vai ser uma solução.
Talvez no XML compense uma mistura, igual acontece com página de internet, em caracteres diferentes usar "e comercial" + hexa
O negócio agora vai planejar ser a mudança durante o uso.
Provavelmente uma flag pra indicar se o registro está convertido.
Valeu.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour X NFE X MySql
Deu certo José?
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:
“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”.
Até 2017 Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL
Novos Projetos:
Desktop Visual Windev Desktop
Celular Android/iOS Windev Mobile
WEB Windev Web
Sejamos gratos a Deus.
“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”.
Até 2017 Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL
Novos Projetos:
Desktop Visual Windev Desktop
Celular Android/iOS Windev Mobile
WEB Windev Web
Sejamos gratos a Deus.
-
alxsts
- Colaborador

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
Harbour X NFE X MySql
Olá!
Acho muita mão de obra converter para hexa e de hexa. Creio que usando o collation correto no banco resolve o problema.
Tente criar a tabela abaixo, e inserir alguns XMLs. Veja se dá certo.
Pode postar um XML para testes?
Acho muita mão de obra converter para hexa e de hexa. Creio que usando o collation correto no banco resolve o problema.
Tente criar a tabela abaixo, e inserir alguns XMLs. Veja se dá certo.
Código: Selecionar todos
CREATE TABLE 'acento' (
'id' int(4) unsigned zerofill NOT NULL AUTO_INCREMENT,
'texto' varchar(8000) COLLATE latin1_general_ci NOT NULL,
PRIMARY KEY ('id')
) ENGINE=InnoDb DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci ;[]´s
Alexandre Santos (AlxSts)
Alexandre Santos (AlxSts)
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Harbour X NFE X MySql
O emissor oficial, depois de algum tempo, estraga XMLs autorizados.
Após transmissão, o XML do governo está diferente do que foi enviado.
A maioria dos clientes nem sequer salva XMLs recebidos.
XMLs por email, alguns se estragam, porque certos softwares ou leitores de email teimam em usar codepage pra XMLs.
Se o governo e o cliente não se importam.... nem eu.
Faço o melhor que posso e só.
Para os XMLs emitidos, que são gerados pelo ERP, está tudo certo, não há problema.
Para os XMLs recebidos, eventualmente há algum que se deforma, mas muito poucos.
Tem que lembrar que:
Os XMLs do ERP são gerados em Ascii (ou UTF-8)
Os XMLs recebidos, podem ser em Ascii ou UTF-8
Resumindo: Sempre vai ter XML diferente, não importa o cuidado que tome.
Sobre o collation do MySql....
Tanto faz. O que manda é a conexão.
Basta setar a codepage na conexão, que será convertido pra ficar compatível com a codepage do banco de dados.
Aprendi isto nestes dias.
E a propósito: Em 2008, primeiro ano da NFE, os XMLs não continham o protocolo.
Hoje esses XMLs oficiais seriam considerados inválidos.
Será que compensou guardar?.... rs
Após transmissão, o XML do governo está diferente do que foi enviado.
A maioria dos clientes nem sequer salva XMLs recebidos.
XMLs por email, alguns se estragam, porque certos softwares ou leitores de email teimam em usar codepage pra XMLs.
Se o governo e o cliente não se importam.... nem eu.
Faço o melhor que posso e só.
Para os XMLs emitidos, que são gerados pelo ERP, está tudo certo, não há problema.
Para os XMLs recebidos, eventualmente há algum que se deforma, mas muito poucos.
Tem que lembrar que:
Os XMLs do ERP são gerados em Ascii (ou UTF-8)
Os XMLs recebidos, podem ser em Ascii ou UTF-8
Resumindo: Sempre vai ter XML diferente, não importa o cuidado que tome.
Sobre o collation do MySql....
Tanto faz. O que manda é a conexão.
Basta setar a codepage na conexão, que será convertido pra ficar compatível com a codepage do banco de dados.
Aprendi isto nestes dias.
E a propósito: Em 2008, primeiro ano da NFE, os XMLs não continham o protocolo.
Hoje esses XMLs oficiais seriam considerados inválidos.
Será que compensou guardar?.... rs
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Harbour X NFE X MySql
Só pra dar uma idéia, apesar do MySql não mostrar número exato de registros nessa tela.
Mais de 200.000 XMLs, desde 2008.
Já vi de tudo.
Mais de 200.000 XMLs, desde 2008.
Já vi de tudo.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
