Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

  • Membros Pro
Postado (editado)

Bom dia.

Meu problema é o seguinte: Possuo uma tabela com um campo do tipo blob no qual armazeno uma imagem e preciso gravar os registros dessa tabela em um arquivo xml para ser lido por um webservice. Não estou conseguindo informar esse registro blob no xml, não insere todos os binários somente os primeiros digitos do blob. Alguém já passou por uma situação parecida que possa me dar uma dica?

Estou usando delphi 7 + zeos dbo + TXMLdocument para gerar o arquivo xml.

Editado por Werner_Marques
  • Consultores
Postado
1 hora atrás, Werner_Marques disse:

não insere todos os binários somente os primeiros digitos do blob. Alguém já passou por uma situação parecida que possa me dar uma dica? 

Estou usando delphi 7 + zeos dbo + TXMLdocument para gerar o arquivo xml.

Como você está convertendo o tipo binário? Está usando base64 por exemplo?

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
  • Membros Pro
Postado (editado)
2 horas atrás, EMBarbosa disse:

Como você está convertendo o tipo binário? Está usando base64 por exemplo?

Boa tarde,

não, estou fazendo assim: NodeNivelC.AddChild('logo').NodeValue     := TBlobField(qr.fieldbyname('logo').AsString

dessa forma ele deveria inserir em formato de texto, mas está acontecendo que ele insere somente os 3 primeiros caracteres.

Editado por Werner_Marques
  • Consultores
  • Solution
Postado
10 minutos atrás, Werner_Marques disse:

Boa tarde,

não, estou fazendo assim: NodeNivelC.AddChild('logo').NodeValue     := TBlobField(qr.fieldbyname('logo').AsString

dessa forma ele deveria inserir em formato de texto, mas está acontecendo que ele insere somente os 3 primeiros caracteres.

Acho que você não pode simplesmente atribuir ao NodeValue (que é um OleVariant) uma string que é na verdade um arquivo binário.

É provável que vão existir caracteres de controle não compatíveis e resultará em um xml malformado.

Talvez por isso seja necessário converter para base64. Visto que está usando Delphi 7 espero que esse link te ajude: https://stackoverflow.com/q/32306960/460775

 

  • Curtir 3

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
  • Consultores
Postado

A propósito, o XML não foi feito para isso (incluir arquivos binários). Ele não é eficiente para isso. Você vai gastar mais tempo e recursos.

Seria melhor verificar com o servidor uma alternativa.

  • Curtir 2

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
  • Membros Pro
Postado

Boa Tarde, @EMBarbosa.

Consegui da forma que orientou codificando para base64. Concordo que não é o mais indicado usar o arquivo XML, vou conversar com o responsável pelo servidor para ver se é possível fazer de outra forma. Obrigado pela atenção e pelo auxilio, pode fechar o tópico.

  • Curtir 2
  • Este tópico foi criado há 2026 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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.