[firebase-br] RES: RES: XML no campo BLOB

Jonas Rodrigo Pacheco jonas.pacheco em tecnicon.com.br
Seg Mar 11 17:13:05 -03 2013


Quando o conteúdo do campo blob termina com ascii_char(0) consequentemente impede de concatenar com outros valores. Solução (paleativa): replace(<campo>,ascii_char(0),'').

Observação: quando se trata de um campo blob, o uso do replace provoca degração de performance.

Jonas Rodrigo Pacheco

-----Mensagem original-----
De: lista [mailto:lista-bounces em firebase.com.br] Em nome de André Conrado
Enviada em: sexta-feira, 30 de novembro de 2012 15:05
Para: FireBase
Assunto: Re: [firebase-br] RES: XML no campo BLOB

Jonas, ao declarar a variável XML no teu procedimento vc usou o SUB_TYPE=1 (TEXTO). Troque para SUB_TYPE=0(BINARIO) que é o mesmo que vc está usando na tabela.

Abs

Em 30 de novembro de 2012 10:40, Marcelo Geyer <estanisgeyer em gmail.com>escreveu:

> Eu também trabalho com o XML no banco de dados e não tenho esse 
> problema, no entanto eu só trabalho com UTF-8, além de programar em C++ e Qt.
>
> Abraços,
>
> --
> Marcelo E. Geyer
> Standard Net Tecnologia e Informação
>
> Em 30 de novembro de 2012 08:51, Jonas Rodrigo Pacheco < 
> jonas.pacheco em tecnicon.com.br> escreveu:
>
> > Obrigado pelo retorno,
> >
> > No entanto o XML é gerado a nível de banco de dados, ou seja, não 
> > posso tratar isso no nível da aplicação.
> >
> > A procedure funciona da seguinte forma, guarda um histórico do 
> > valor/xml do campo:
> >
> > create or alter procedure RXML (
> >     SEQ integer,
> >     CAMPO varchar(200),
> >     TIPO char(1),
> >     ANTERIOR blob sub_type 1 segment size 80,
> >     ATUAL blob sub_type 1 segment size 80) returns (
> >     REGISTRO blob sub_type 1 segment size 80) as declare variable 
> > XML blob sub_type 1 segment size 80; begin
> >   XML= 'C=|'||:campo||'| T=|'||:tipo||'| 
> > O=|'||Coalesce(:anterior,'')||'| N=|'||Coalesce(:atual,'');
> >   registro = '<ROW '||:XML||'|/>';
> >   suspend;
> > end^
> >
> >
> > Jonas Rodrigo Pacheco
> >
> > -----Mensagem original-----
> > De: lista [mailto:lista-bounces em firebase.com.br] Em nome de Carlos H.
> > Cantu
> > Enviada em: quinta-feira, 29 de novembro de 2012 10:18
> > Para: FireBase
> > Assunto: Re: [firebase-br] XML no campo BLOB
> >
> > O problema não deve estar no Firebird, e sim no seu componente de 
> > acesso, ou na forma que você está carregando/recuperando o conteúdo no blob.
> >
> > O Firebird grava o que chegar pra ele gravar. No entanto, seu 
> > componente de acesso pode estar tratando os caracteres especiais 
> > como sendo final de arquivo/linha/etc, truncando o conteúdo.
> >
> > []s
> > Carlos H. Cantu
> > www.FireBase.com.br - www.firebirdnews.org www.warmboot.com.br - 
> > blog.firebase.com.br
> >
> > JRP> Senhores,
> >
> > JRP> Estou armazenando arquivo XML em um campo da tabela do tipo BLOB.
> >
> > JRP> CREATE TABLE NFXML (
> > JRP>     SNFE      INTEGER NOT NULL,
> > JRP>     NFXML         BLOB SUB_TYPE 0 SEGMENT SIZE 80);
> >
> > JRP> INSERT INTO NFXML (SNFE, NEXML) VALUES (:S, :VXML);
> >
> > JRP> Pórem alguns arquivos XML possuem algum caracter especial que 
> > JRP> aparentemente conflita com o Firebird e consequentemente na 
> > JRP> tabela o arquivo BLOB tem só uma parte gravada (ou seja, fica 
> > JRP> incompleto, pois só grava a parte até chegar ao caracter especial).
> >
> > JRP> Alguma sugestão? Eu não informo charset (chaset=NONE).
> >
> > JRP> Desde já agradeço a atenção de todos!
> >
> > JRP> Jonas Rodrigo Pacheco
> >
> > JRP> ______________________________________________
> > JRP> FireBase-BR (www.firebase.com.br) - Hospedado em 
> > JRP> www.locador.com.br Para saber como gerenciar/excluir seu cadastro na lista, use:
> > JRP> http://www.firebase.com.br/fb/artigo.php?id=1107
> > JRP> Para consultar mensagens antigas: 
> > JRP> http://firebase.com.br/pesquisa
> >
> >
> > ______________________________________________
> > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br 
> > Para saber como gerenciar/excluir seu cadastro na lista, use:
> > http://www.firebase.com.br/fb/artigo.php?id=1107
> > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> >
> >
> >
> > ______________________________________________
> > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br 
> > Para saber como gerenciar/excluir seu cadastro na lista, use:
> > http://www.firebase.com.br/fb/artigo.php?id=1107
> > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> >
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br 
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



--
Um Abraço,
André Conrado.

055 21 8840-6232 - Claro
e-mail: acf em andreconrado.net
http://andreconrado.net
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br Para saber como gerenciar/excluir seu cadastro na lista, use: http://www.firebase.com.br/fb/artigo.php?id=1107
Para consultar mensagens antigas: http://firebase.com.br/pesquisa






Mais detalhes sobre a lista de discussão lista