[firebase-br] Troca de Character Set de um Campo mais emumSELECT

Adilson cpd em itauto.com.br
Qui Jan 24 18:09:15 -03 2013


Bom . ate gravar eu estou gravando como BLOB Textual . mais to transformando 
em BLOB Binary pra poder abrir
dentro da minha aplicacao , ate assim . é uma vergonha eu falar , mais ainda 
estou utilizando BDE em meus aplicativos , vou testar a rotina de restaurar 
com outro componente , pra ver se isso para ... qualquer coisa posto aqui .
mais valeu Gladiston pela Força .


Adilson Pazzini .
----- Original Message ----- 
From: "Gladiston Santana" <gladiston em vidy.com.br>
To: "FireBase" <lista em firebase.com.br>
Sent: Thursday, January 24, 2013 2:37 PM
Subject: Re: [firebase-br] Troca de Character Set de um Campo mais 
emumSELECT


'Invalid blob id' normalmente ocorre em transações com charset´s
diferentes ou quando um deles é ausente(charset none).
Se um charset não foi definido para seu campo XML (ou o banco) e voce
faz a conexão com um charset especifico, o erro iria ocorrer. O
inverso tambem é verdadeiro, voce faz o login usando um charset, mas o
campo não tem charset definido.

No FB 2.5 é dificil ocorrer 'invalid blob id' porque o create database
aceita 'default character set iso8859_1 collation pt_br' assim não é
mais preciso fazer essa definicição na tabela. Então uma vez criado o
banco de dados nesses termos, adeus esse tipo de problema.

Usando tipo binário resolve o problema porque tipos binários não usam
charset. Mas não sei o quando lhe prejudicará no futuro, pois funções
de indexação para blob text é meu sonho de consumo. Já imaginou jogar
um XML lá dentro e poder pesquisar pelos nós dos campos XML como no
MSSQL ?


Gladiston Santana
Departamento de TI
Grupo Vidy
Tel (11) 4787-3122 ramal 228
Rod. Régis Bittencourt 3360 - Km 272,5
Taboão da Serra - SP - CEP: 06793-000
Visite nosso site: www.vidy.com.br
Visite também : www.expolabor.com.br




Em 23 de janeiro de 2013 17:59, Adilson <cpd em itauto.com.br> escreveu:
> Outra que fiz e agora tambem deu certo . foi converter com a funcao CAST
> para Blob subtype 0 , que é pra tipo Binary ... e na restauracao agora deu
> certo , sem erro de Invalid BLOB ID.
>
>
>
>
> ----- Original Message ----- From: "Adilson" <cpd em itauto.com.br>
> To: "FireBase" <lista em firebase.com.br>
> Sent: Wednesday, January 23, 2013 2:06 PM
>
> Subject: Re: [firebase-br] Troca de Character Set de um Campo mais
> emumSELECT
>
>
> Olha o que tive que fazer pra parar o erro , pois mesmo trocando o tipo 
> pra
> UTF8 , ainda sim . no DELPHI ficou
> dando esse erro Inválid BLOB ID
>
> Utilizando essa rotina em Delphi pra tentar preencher do banco :
>
>    var
>     aXML    : TStringStream;
>    begin
>       if not livm01.QCONS1.FieldByName('XMLNFE').isnull then
>        begin
>         dmnfe.NFe.NotasFiscais.Clear;
>         try
>           aXML :=
> TStringStream.Create(livm01.QCONS1.FieldByName('XMLNFE').value);
>          //-- tentei ate esse abaixo mais mesmo assim tambem nao deu
>
> //TBlobField(LIVM01.QCONS1.Fieldbyname('XMLNFE')).SaveToStream(aXML');
>           dmnfe.NFe.NotasFiscais.LoadFromStream(aXML);
>         Finally
>          FreeAndNil(aXML);
>         end;
>
> mais nao obtive sucesso . sempre apresentando o mesmo erro , o engraçado 
> que
> quando faço essa mesma rotina . mais para notas que eu mesmo gero , nao to
> tendo este problema , estou tento
> apenas esse problema para armazenar nf que vem do portal da NF-e , no caso 
> ,
> NF de terceiros . consegui resolver utilizando o CAST e convertendo o 
> campo
> Blob para Varchar , mais nao sei
> se seria viavel fazer isso ..... se alguem tiver algum objecao ou ja 
> passou
> por isso . fico grato passar a experienvia aqui .
>
>
> select b.data , a.id_nfs , a.codemp , a.numnf , a.codcli , a.serie ,
> strlen(b.xmlnfe) ,cast(b.xmlnfe as varchar(32765)) xmlnfe
> from fatnfs a , fatnfsxml b
> where a.id_nfs = b.id_nfs
> and   a.dtemi = '01/23/2013'
> order by a.id_nfs , b.data
>
>
> ----- Original Message ----- From: "Adilson" <cpd em itauto.com.br>
> To: "FireBase" <lista em firebase.com.br>
> Sent: Wednesday, January 23, 2013 11:17 AM
> Subject: Re: [firebase-br] Troca de Character Set de um Campo mais
> emumSELECT
>
>
> Até assim Gladiston , esse campo foi criado no banco de dados a pouco 
> tempo
> , e tambem , estou ainda em faze
> de testes , ate pra vc ter uma base continuo gravando os dados da NF-e em
> arquivo num diretorio do programa,
> entao eu posso ate excluir o campo e crialo novamente , vou criar entao um
> campo como Blob Sub type 1 , com
> o Character set dele como UTF8 , pra ver se para este problema entao . 
> pelo
> que vi o Colate . nao deixa ser definido
> neste tipo de Campo Blob ... somente o Character Set mesmo .
>
> Agradesço a ajusta , e se tiver mais algo a complementar tambem agradesço 
> .
>
> Adilson Pazzini .
>
> ----- Original Message ----- From: "Gladiston Santana"
> <gladiston em vidy.com.br>
> To: "FireBase" <lista em firebase.com.br>
> Sent: Wednesday, January 23, 2013 10:09 AM
> Subject: Re: [firebase-br] Troca de Character Set de um Campo mais
> emumSELECT
>
>
> Backup e restore informando o novo charset talvez seja melhor solução.
> O problema disso é que todos os caracteres latin1 podem ser
> transliterados para utf8, porém o inverso não é verdadeiro, ou seja,
> não tem volta 100% perfeita.
> Se de alguma forma você trabalha com internet, acho que é bem melhor
> trabalhar com utf8 usando como collate UNICODE_CI_AI. Linguagens de
> programação para web e formatos como xml, json e afins quase sempre
> estão em utf8.
>
> Eu trabalho usando Linux e usar utf8 é bem natural, na realidade, a
> unica coisa que vejo que persistem em latin1 são legendas de filmes e
> só.
>
> Gladiston Santana
> Departamento de TI
> Grupo Vidy
> Tel (11) 4787-3122 ramal 228
> Rod. Régis Bittencourt 3360 - Km 272,5
> Taboão da Serra - SP - CEP: 06793-000
> Visite nosso site: www.vidy.com.br
> Visite também : www.expolabor.com.br
>
>
>
>
> Em 23 de janeiro de 2013 08:42, Adilson <cpd em itauto.com.br> escreveu:
>>
>> Essa opção então seria para o Collate , bom vou testar pra ver se tira o
>> erro que to tendo
>> na hora de trazer o campo pra tela , mais caso nao pare , hj estou
>> utilizando pra armazenar
>> o xml o tipo blob texto com o character set igual a ISO9959_1 , sera que
>> seria viavel trocar
>> pra UTF8 ?
>>
>> ----- Original Message ----- From: "Gladiston Santana"
>> <gladiston em vidy.com.br>
>> To: "FireBase" <lista em firebase.com.br>
>> Sent: Tuesday, January 22, 2013 12:08 PM
>>
>> Subject: Re: [firebase-br] Troca de Character Set de um Campo mais
>> emumSELECT
>>
>>
>> Em 22 de janeiro de 2013 08:35, Adilson <cpd em itauto.com.br> escreveu:
>>
>>> ra que isso funcionaria para trazer somente como resuldado de um campo
>>> por exemplo select campo character set utf8 from tabela ? <- Algo assim
>>> ... vi q nao funciona . mais talvez exista alguma
>>> maneira ... caso exista se puderem postar agradesço a todos .
>>>
>>
>> Funciona em qualquer lugar if, select, ... desde que siga a ordem :
>> CAMPO collate <collate>
>> if (:pvar collate pt_BR = 'A') then...
>> select campo collate pt_BR from tabela
>> e assim por diante.
>>
>> Isso não é uma conversão de charset, é apenas a forma de tratamento 
>> usando
>> um collation, se o default de um database já tem definido um collate
>> default, não é necessário expressar esse desejo no select se for o mesmo
>> collate.
>> ______________________________________________
>> 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
>>
>>
>> -----
>> Nenhum vírus encontrado nessa mensagem.
>> Verificado por AVG - www.avgbrasil.com.br
>> Versão: 2012.0.2221 / Banco de dados de vírus: 2639/5549 - Data de
>> Lançamento: 01/21/13
>>
>>
>>
>> ______________________________________________
>> 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
>
>
> -----
> Nenhum vírus encontrado nessa mensagem.
> Verificado por AVG - www.avgbrasil.com.br
> Versão: 2012.0.2221 / Banco de dados de vírus: 2639/5551 - Data de
> Lançamento: 01/22/13
>
>
>
> ______________________________________________
> 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
>
>
> -----
> Nenhum vírus encontrado nessa mensagem.
> Verificado por AVG - www.avgbrasil.com.br
> Versão: 2012.0.2221 / Banco de dados de vírus: 2639/5551 - Data de
> Lançamento: 01/22/13
>
>
>
> ______________________________________________
> 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
>
>
> -----
> Nenhum vírus encontrado nessa mensagem.
> Verificado por AVG - www.avgbrasil.com.br
> Versão: 2012.0.2221 / Banco de dados de vírus: 2639/5551 - Data de
> Lançamento: 01/22/13
>
>
>
> ______________________________________________
> 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


-----
Nenhum vírus encontrado nessa mensagem.
Verificado por AVG - www.avgbrasil.com.br
Versão: 2012.0.2221 / Banco de dados de vírus: 2639/5554 - Data de 
Lançamento: 01/24/13






Mais detalhes sobre a lista de discussão lista