[firebase-br] Migrando do FB2.0 para o FB2.1, problema com collate
Eduardo Bahiense
eduardo em icontroller.com.br
Seg Mar 24 00:19:52 -03 2008
Arlei
É o que eu te falei. O ideal é vc criar um banco novo e pumpar os dados
de um para outro.
Como a estrutura é igual, não é difícil fazer uma rotina para isso,
mantendo duas conexões abertas uma com o BD Source e outra com o BD Target.
Algo assim:
DB.Source.Connect;
//este é o que está no cliente
DB.Target.Connect;
//este é um novinho com todos os padrões setados
//Você pode fazer no escritório e
//distribuir pronto na atualização
//NO Source
QrySource.SQL.Text := 'Select * from rdb$relations where
rdb$sistem_flag = 1' // suas tabelas
contador := 1;
while not QrySource eof do
begin
QryInsert := Faz uma rotina para gerar um SQL de insert
//tenho isso meio pronto. Se precisar, me peça em
//private
DB.Target.Execute(QryInsert)
Inc(contador)
if Contador > 500 then
begin
contador := 1;
DBTarget.COMMIT;
end;
QryInsert.Next;
end;
DBTarget.COMMIT;
Claro! Isso é um protótipo. Tem que renomear o Source e o target no
final, Verificar a ordem que as tabelas vão ser populadas em função de
Fk's e tudo o mais. Mas vale a pena para ZERAR o problema.
Do jeito que vc está fazendo, alterando as tabelas do sistema na unha, o
que vc vai conseguir é muita dor de cabeça.
Abs,
Eduardo
Arlei Ferreira Farnetani Junior escreveu:
> Percebi uma coisa...qdo eu faço um backup e restore o
> sistema volta o default para o collate ISO8859_1. Tem
> algum jeito de fixar o mesmo?
>
> ----- Original Message -----
> From: "Eduardo Bahiense" <eduardo em icontroller.com.br>
> To: <lista em firebase.com.br>
> Sent: Sunday, March 23, 2008 4:59 PM
> Subject: Re: [firebase-br] Migrando do FB2.0 para o FB2.1,problema com
> collate
>
>
> Olá Arlei
>
> Na verdade não é o IBExpertinho, é o próprio FB.
> Infelizmente, há um passo pouco documentado na criação do Banco que é
> "setar" o Collate default para o banco.
>
> Faz assim, cria um banco novo com Charset ISO8859_1. Antes de fazer
> qualquer coisa no banco, rode a instrução abaixo:
>
> UPDATE RDB$CHARACTER_SETS SET RDB$DEFAULT_COLLATE_NAME = 'PT_BR' WHERE
> RDB$CHARACTER_SET_NAME = 'ISO8859_1'
>
> Pronto! Daqui para frente, qualquer campo que exija collate será criado
> com esse.
>
> Observações:
>
> 1. Após essa query, reinicie o FB
> 2. O ideal é que vc prepare um banco novo e transporte as informações
> para ele extraindo o metadata do banco antigo.
> 3. Após o processo de migração, Backup->Restore
> 4. As conseqüências de não seguir estes passos são imprevisíveis.
>
> Abs,
>
> Eduardo
>
> Arlei Ferreira Farnetani Junior escreveu:
>> Pessoal, estou migrando do FB2 para o 2.1 e estou tendo
>> um problema em relação ao Collate ISO8859_1, me parece
>> que ele não existe no FB 2.1, me resultando a seguinte msg
>> de erro:
>>
>>
>> Me parece que qdo nao colocamos o collate o proprio
>> IBEXPERT coloca ele resultando que todos os
>> campos varchar que fiz estao com este collate aparecendo...
>>
>> Gostaria de saber se existe um comando sql para alterar
>> todos os varchars com collate ISO8859_1 para o pt_br.
>>
>>
>> ______________________________________________
>> 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
>
Mais detalhes sobre a lista de discussão lista