[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