[firebase-br] Erro de Invalid Blob Id em banco de dados migrado
Qatan
wanstadnik em gmail.com
Sáb Jul 12 15:54:20 -03 2014
Olá Gladiston,
Obrigado por explicar isso, realmente estava precisando entender como
funciona esta questão.
Fiz uns testes e fiquei muito contente com os resultados de busca por
palavras acentuadas no Firebird, perfeito.
Cordialmente,
Qatan
-----Original Message-----
From: Gladiston Santana
Sent: Friday, July 11, 2014 6:47 PM
To: FireBase
Subject: Re: [firebase-br] Erro de Invalid Blob Id em banco de dados migrado
COLLATE e CHARSET são coisas distintas.
O collate interpreta o conjunto de caracteres e o charset define o mapa de
caracteres.
O collate pt_BR por exemplo, não liga para as acentuações, maiusculas ou
minusculas, e usa uma ordem A-Z, outros collates podem diferir disso. Se
eu tivesse conhecimento para tal, poderia criar um collate que tratasse
'ph' como 'f' e ignorar sinais diacríticos da nossa língua.
Portanto, voce pode usar o collate que quiser e onde quiser, mas é bem
melhor definir em sua estrutura e não ter que usar o collate na sintaxe
duma query:
select * from clientes where razao_social collate pt_BR like 'a%'
Eu defino collate apenas em campos pesquisaveis como descrição, porque usar
collate também tem o seu preço.
Voce pode usar o collate pt_BR e charset UTF-8 juntos (é o que eu faço),
contudo as possibilidades de collates que podem ser usados dependem do
charset escolhido.
A conversão de charset é que é o problema, o codigo ASCII é tranquilo
converter para qualquer outra coisa, alias a sequencia ASCII->ANSI->UTF é
bem tranquila, o problema é diferir dessa ordem ou reverter a conversão.
Para ilustrar,é como se você fizesse um search/replace por 'cao' para
'cão' coisas como 'atencao' para 'atencão' ficam bem, mas e as ocorrências
como 'caolho', deve ficar 'cãolho' ?
Por isso, não se faz mudança de charset para outro sem que ocorram algumas
falhas, por isso, tem que ter cuidado com opções como -FIX_FSS_DATA
-FIX_FSS_METADATA que dependendo de como o banco está, a conversão vai
estragar o que já estava certo.
O ideal é usar UTF-8 porque ele contempla quase tudo no universo num
charset unico, não tem porque voltar para o ANSI ou ASCII por falta dum
caracter. No UTF voce começa uma frase em português e depois termina com
caracteres japoneses numa boa. O preço disso é que determinados caracteres
consumirão mais espaço, por isso, alguns ainda preferem o ANSI porque tudo
que vão usar estão alí e consumirá menos espaço.
Em 11 de julho de 2014 12:23, Qatan <wanstadnik em gmail.com> escreveu:
> Aproveitando o gancho... tem como pegar uma base que foi gerada sem
> collate (está com CHARSET = ASCII) e transformar para ISO8959-1 COLLATE
> FR_FR_CI_AI ?
> Aliás, qual o procedimento para converter collate? Exemplo vamos dizer que
> a base está com CHARSET= UTF8) e eu queira mudar para ISO8859-1 /
> FR_FR_CI_AI (ou PT_BR se preferir).
> Obrigado
>
> Qatan
>
>
> -----Original Message----- From: Carlos H. Cantu
> Sent: Friday, July 11, 2014 4:37 PM
> To: FireBase
> Subject: Re: [firebase-br] Erro de Invalid Blob Id em banco de dados
> migrado
>
>
> Os parâmetros -FIX_FSS_DATA e -FIX_FSS_METADATA **só devem** ser usados
> **se** o gbak reportou problemas com o charset! Caso contrário, vc
> poderá "estragar" sua base de dados.
>
> []s
> Carlos H. Cantu
> www.FireBase.com.br - www.firebirdnews.org
> www.warmboot.com.br - blog.firebase.com.br
>
> BD> Olá a Todos!!!!!!
>
> BD> Venho enfrentando problemas em alguns de meus clientes. Os bancos de
> dados
> BD> que fiz a migração do Firebird 1.5 para o Firebird 2.5 estão
> apresentando
> BD> erros de INVALID BLOB ID em algumas tabelas, o estranho é que nas
> tabelas
> BD> onde apresenta este erro não existe campo BLOB.
>
> BD> Estou fazendo algum erro no processo de conversão do banco de dados?
> Os
> BD> passos que executo para a conversão são:
>
> BD> 1 - Realizo o Backup com o GBAK => gbak -g -b -z -l -v
> BD> localhost:/BD/BANCO.FDB BANCO.FBK -user SYSDBA -pass masterkey
>
> BD> 2 - Desinstalo o Firebird 1.5
>
> BD> 3 - Instalo o Firebird 2.5
>
> BD> 4 - Realizo o Restore com o GBAK => gbak -g -c -z -v BANCO.FBK
> BD> localhost:/BD/BANCO-NOVO.FDB -user SYSDBA -pass
> masterkey -FIX_FSS_DATA
> BD> ISO8859_1 -FIX_FSS_METADATA ISO8859_1
>
>
> BD> Quando o sistema apresenta este erro de INVALID BLOB ID, eu tenho que
> BD> apagar todas as Triggers e Procedures do banco que está no Firebird
> 2.5 e
> BD> realizo o Backup & Restore.
>
> Backup =>> gbak -g -b -z -l -v localhsot:/BD/BANCO-NOVO.FDB BANCO-NOVO.FBK
> BD> -user SYSDBA -pass masterkey -FIX_FSS_DATA ISO8859_1 -FIX_FSS_METADATA
> BD> ISO8859_1
>
> Restore =>> gbak -g -c -z -v BANCO-NOVO.FBK
> BD> localhost:/BD/BANCO-RESTAURADO.FDB -user SYSDBA -pass masterkey
> BD> -FIX_FSS_DATA ISO8859_1 -FIX_FSS_METADATA ISO8859_1
>
>
> BD> Este é o procedimento todo que realizo. Existe algo de errado ou algo
> que
> BD> possa estar faltando para não ocorrer este erro?
>
> BD> Muito obrigado!!
>
> BD> At.,
>
> BD> Bruno Lage.
> BD> Skype:brunodila
>
>
> ______________________________________________
> 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
>
--
--
B em B@BU iB em M@B. B em MBBO MBBMMB em B@BZLr E@@@@i r@@@BU
vB em M@O E em B@Bu BBBM em 0 G em MMM@N8MBB em ZP5r B em B@k 8B@@O
OB em B@q 2 em BBBM B em B@BO BB em B@B,.:,7B em B@@L uB em B@, OB em B@.
,@@@B@ @BBB@, @BBB em 8 M em M@@@ PB em B@B @@@BN iB em B@L
U em B@B2 LB em B@X B em MBBO MBBM em B i em BBB@. 7 em B@Bi B em B@E
B@@@BiM em M@B. @BBM em G M em MMB@ v@@M em B, G em B@Z v em B@B.
7B em B@O em B@B5 B em B@B8 BBBM em B Z@@@B@ iB@@@2 em B@Br
NB em M@B em B8 @B em B@8 M em B@B em i:i75 em B@B em r E@@B em B@Bq
. em B@@@B@: B em B@B@ @B@@@B em B@B@@@ME; .BB em MBB@
55.ANOS OMOGBS PBZGGOOMOO117, 7 em BBB@r
==============================================r@@@@F=====
Gladiston Santana 8 em B@B,
Supervisor de TI G em B@B7
Tel.:+551147873122 R:228 :@B em B0
Grupo VIDY - SGQ ISO9001 - 55 ANOS @B em B@.
Visite nosso site: www·vidy·com·br BB@@@u
Visite também : www·expolabor·com·br GB em B@N
______________________________________________
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