[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