Re: [firebase-br] Busca com e sem acentuação

Pha-Listas lista em pha.com.br
Dom Mar 12 10:14:13 -03 2006


Muitos alteram os Collate pelos IBExpert, neste caso terão que ser feito um Backup e um 
Restore para que tudo funcione corretamente, isso vale para todos os collates não é um 
problema do collate PT_BR.

Resumidamente os passo são:

1) Gere o scripty do Banco

2) Altere os collates para os desejados

3) Crie um novo banco (com outro nome ou faça uma copia do anterior)

4) Use o IBDataPump para importar os dados do banco antigo


Paulo Henrique Albanez
VirtualSystem Informática Ltda
Nova Odessa / SP - Brazil

----- Original Message ----- 
From: "RedDevil" <th3r3dd3v1l em gmail.com>
To: <lista em firebase.com.br>
Sent: Sunday, March 12, 2006 12:49 AM
Subject: Re: [firebase-br] Busca com e sem acentuação


ola pessoal,

eu vou aproveitar que as enfermeiras do sanatorio aqui estao
distraidas devido ao fato de que o Coringa esta se preparando para ir
a um velorio e vou dar a minha opiniao sobre este lance aqui...
;o)

desde o final de semana passado eu estou brincando com o Firebird
1.5.3 sabor collate PT_BR, mas com um BD criado do zero...

entao eu resolvi testar como eh que seria possivel converter um BD ja
populado (isto aqui eu nao mudo mais... questao de honra...;o), e com
outro collate, para o collate PT_BR, pois logo a gente vai ter que
fazer essa historia, e eu ainda nao sabia como fazer ela...

a conclusao a qual eu cheguei eh essa que o Mr. Cantu mencionou no
inicio do post dele, e tendo um BD com charset WIN1252 e collate
PXW_INTL850, fiz a historia da seguinte maneira:

1 - usei o IBExpert para extrair a metadata completa do BD, com os
dados de todas as tabelas...

2 - apos gerar o script com a referida metadata, eu optei por editar
ela com o Script Executive do IBExpert (nota: eu observei que se as
tabelas do BD cuja metadata foi gerada tiverem muitos dados, o
IBExpert somente permite editar a metadata nesta altura da odisseia, e
depois, quando a gente tentar abrir e rodar o script com o Script
Executive, ele da uma msg de que o script eh muito grande, e somente
permite rodar ele, sem editar... portanto, eu sempre faço as
alteraçoes nesta fase... eu nao sei se seria viavel a gente editar a
metadata depois, usando o WordPad do windows (com o NotePad eu
acredito que seria viavel, pois ele eh um editor de textos "puro", mas
ele nao encara o arquivo muito grande e passa a bola para o
WordPad...;o)) e apaguei a parte inicial do script, de tal maneira que
o que fica no script eh a partir da criaçao dos generators em
diante... eu apaguei mais ou menos isso ae abaixo:

SET SQL DIALECT 3;

SET NAMES WIN1252;

SET CLIENTLIB 'fbclient.dll';

CREATE DATABASE '\database home\DragonEgg.FdB'
USER 'SYSDBA' PASSWORD 'masterkey'
PAGE_SIZE 4096
DEFAULT CHARACTER SET WIN1252;

3 - em seguida, ainda com o script editado, eu substitui, na criaçao
das tabelas, todas as referencias ao collate PXW_INTL850 pelo collate
PT_BR...

4 - entao eu salvei e fechei o script com a metadata alterada para
sabor collate PT_BR, deletei o BD original, e usei o IBExpert para
criar um novo BD com o charset ISO8859-1...

5 - finalmente eu registrei, abri o novo BD no IBExpert e usei o
Script Executive (opçao "Use current connect" assinalada) para
executar o script contendo a metadata completa do BD e pronto, final
de historia...

antes de começar essa viagem ae acima, eu tinha inserido no meu BD
(quando este ainda estava em sabor charset WIN1252 e collate
PXW_INTL850) informaçoes como: "coracao", "coraçao", "coração",
"CORACAO", "CORAÇAO", "CORAÇÃO", e apos fazer a historia, se eu der
um:

select <campo>, <campo>, <campo> from <tabela>
where <campo> like ('%coracao%');

ele me retorna todas essas referencias ae acima...


--
Luiz "RedDevil" Stefanski
"sê fiel até a morte".
(Apocalipse, 2)



Em 11/03/06, Carlos H. Cantu (TeamFB)<listas em warmboot.com.br> escreveu:
> Para mudar o collate de um campo que já existe, acho que soh criando
> outro, movendo os dados, apagando o anterior, criando-o novamente com
> o collate e nome correto, e movendo os dados de volta.
>
> Ou então crie um novo banco (vazio) com os collates corretos e use o
> IBDataPump para migrar os dados de um banco para o outro.
>
> []s
> Cantu (Membro do TeamFB - FireBase)
> http://www.warmboot.com.br
> FireBase - http://www.FireBase.com.br
>
> VC> Olá Pessoal!
>
> VC> Hoje fui instalar um Sistema num cliente que me
> VC> mandou a seguinte baga: Posso pesquisar JOSE CORACAO
> VC> ou JOSÉ CORAÇÃO ou jose coracao ou josé coração que
> VC> o Sistema retorna todas as 4 ocorrências?
>
> VC> Engasguei, avermelhei e antes que a pessoa falasse: "É que o
> VC> Sistema do teu concorrente que é no SGDB ? faz isto
> VC> tranquilamente!", fui logo dizendo: "Vou pesquisar, mas é
> VC> bem provável que faz"
>
> VC> Então realmente pesquisei, encontrei o FireBird de um galera
> VC> de coração generoso, versão 1.5.3 com collate PT_BR, e
> VC> baixei. Desinstalei o anterior (1.5), instalei o novo FB e segui
> VC> a dica deles que é rodar um determinado Script que vem
> VC> junto, que instalará o tal collate (e também o WIN_PTBR)
> VC> naquela base específica. Cada base, vou precisar rodar o
> VC> script.
>
> VC> Pelos meus testes, ficou legal: Numa determinada base, que
> VC> já estava criada, após instalar os collates novos, criei um novo
> VC> campo numa table que já estava criada e lá coloque todos
> VC> os "josés" acima e buscando um, lista todos.
>
> VC> Porém, através do IBExpert, alterei um campo VARCHAR
> VC> que já havia sido criado antes, e mudei o collate para PT_BR.
> VC> Apesar de após commitar aparecer que o campo realmente
> VC> agora tem este collate, no entanto as pesquisas não funcionam,
> VC> tanto para dados que já havia no campo, como para novos
> VC> dados digitados neste campo.
>
> VC> Será que um backup restore corrigiria isto?
>
> VC> Estou no caminho certo?
>
> VC> Valmir
>
>
>
>
>
> VC> ______________________________________________
> VC> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> VC> Para editar sua configuração na lista, use o endereço
> VC> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> VC> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> Para editar sua configuração na lista, use o endereço 
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>

______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
Para editar sua configuração na lista, use o endereço 
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa


-- 
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.1.375 / Virus Database: 268.2.1/279 - Release Date: 10/03/2006






Mais detalhes sobre a lista de discussão lista