Ir para conteúdo
  • Cadastre-se

dev botao

Erro Acbrnfe1.notasfiscais.items[0].xml;


Micheli Martins
  • Este tópico foi criado há 3819 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Boa tarde. 

 

Apos consulta da nfe no webservice, tento fazer a gravação da mesma no meu banco sql server.

O tipo do campo no sql é xml.

A nota vem de aCBrNFe1.notasfiscais.LoadFromFile(filename);

Os xml são validos, e vem do email do fornecedor.

Só que todas elas estao dando o mesmo erro.

 

parameters.parambyname('wnfxml').Value:=  ACBrNFe1.NotasFiscais.Items[0].XML;

 

Nessa linha acusa xm parsing: line1 character 38, unable to switch the encoding;

 

 

Alguma solução fácil pra isso?

Editado por Micheli Martins
Link para o comentário
Compartilhar em outros sites

  • Moderadores

O problema ocorre porque o SQL Serve utiliza UTF-16 nas colunas do tipo XML e o XML que você está tentando inserir esta com o encoding UTF-8.

 

Tente:

parameters.parambyname('wnfxml').AsString := ACBrNFe1.NotasFiscais.Items[0].XML;

Ou utilize uma função de conversão para UTF-16 para converter o texto do XML para UTF-16, algo do tipo:

parameters.parambyname('wnfxml').Value:= WideStringOf(TEncoding.Unicode.GetBytes(ACBrNFe1.NotasFiscais.Items[0].XML));

Equipe ACBr

Régys Borges da Silveira

http://www.regys.com.br

certificacao delphicertificacao delphi
Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 3819 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.