RES: RES: [firebase-br] Collate e Character Set - Mais duvidas

Edson T. Marques marques em oriontec.com.br
Seg Jan 31 09:24:51 -03 2005


E aí, beleza!?!

O lance é o seguinte...

1) Eu baixei o firebird 1.5.2 do source forge: 
(https://sourceforge.net/projects/firebirdptbr) (não encontrei o 
instalador para linux!), só para win32.
2) Removí o servidor da versão anterior e instalei o novo.
3) Criei um novo banco de dados, definindo o character set para win1252 
(Essa parte é fundamental para que você não tenha que dar um monte de 
comandos para as tabelas de sistemas do seu banco (ver leiame (em um dos 
diretórios de instalação) que acompa o firebird PTBR)).
4) No ERWin eu criei um pré-script de modelo com todos os domínos que 
queria definir. tais como:
    create domain CNPJ as char(14) collate WIN_PTBR;
5) Essa foi a parte que me comeu uma semana de trabalho: a) Fiz um 
backup do meu modelo, no ponto que estava. b) Me certifiquei que o 
backup funcionava. c) Troquei todos "types" (isso tem que ser feito 
depois do que foi explicado em (6)) dos campos do meu modelo para os 
domínios que definí (sim, todos porque definí domínios para todos os 
conjuntos distintos de campos que existem no meu modelo, inclusive 
campos numéricos (resolví segur a dica do Paulo (acho que foi dele 
mesmo!) que disse que é importante criar domínio para tudo, uma vez que 
se você não fizer o próprio FB vai fazer, e encher as tabelas de 
sistemas com um domínio diferente (com nomes-códigos sequenciais) para 
cada campo do seu banco.)).
6) Para o ERWin poder usar esses domínios, tem um macete que é o 
seguinte: Você acessa o "domain dictionary" (que na versão 4.1 fica no 
menú "Model") e insere cada um dos os domínios que você definiu, lá no 
pré-script de modelo, tomando 5 cuidados básicos: 1) não esqueça de 
herdar seu novo domínio, sempre de um type definido pelo ERWin (Number, 
String, Date...) 2) No "Edit mode" Lógico, coloque um ícone apropriado 
para o domínio que foi criado. 4) No "Edit Mode" Físico desmarque o 
checkbox "DOMAIN" na guia Geral e 5) sobrescreva o "Interbase Datatype" 
com o nome do domínio que você colocou lá no script (Isso na guia 
Interbase). É importante observar aqui que eu meu "target SQL DBMS" é 
Interbase, mas eu já vi aqui na lista gente que usa o ODBC/Generic, 
nestes casos eu não seu oque aparece no lugar de "InterBase" em "domain 
dictionary/Edit Mode Físico/guia Interbase".
7) Aí é só passar os types dos campos para os domínios.

Quer ver? faça um teste criando um novo campo, escolha um dos domínios 
que focê inseriu no domain dictionary. Após você inserir o novo campo e 
ir para a guia datatype o nome do domínio tem que aparecer no Edit 
"Datatype" (não aparece no ScroolEdit abaixo). Se não apececer você pode 
editar direto no Edit Datatype e colocar o nome do domínio lá.

Cabe uma resalva aqui, pois meu modelo foi importado das versões 
anteriores do ERWin (veio mudando de versão em versão) e já existiam 
alguns domínios definidos (no domain dictionary). Eu apenas fiz alguns 
ajustes neles, atualizei os nomes de alguns. Quando eu saí do domain 
dictionary, rapaz(!!!),  O ERwin tem um bug que fez uma bagunça dos 
infernos nos nomes dos campos, trocando nomes de campos por nomes de 
domínios, mantendo alguns domínios com os nomes antigos, foi uma zona. 
Por isso tudo que eu tive trabalho para uma semana. 100% concentrado.

No final deu tudo certo. Meu modelo foi gerado sem problemas (alías 
foram várias tentativas até chegar a esse "sem probleas" aí!). E ao meu 
ver compensou, porque estamos no meio do processo de desenvolvimento e o 
projeto (cronograma) ainda comportava esse investimento extra. Não sei 
se seria uma empreitada prudente se o sistemas já estivesse em produção.

Gerei o banco, coloque uns dados ,fiz uns testes e beleza tudo funcionou 
"igual um côco". Ao meu ver valeu a pena!

[]'s
Edson T. Marques

Mauricio Torres Fernandes escreveu:

>Estou tentando o mesmo... Se conseguir, me avise.
>
>Mauricio. 
>
>  
>
>>-----Mensagem original-----
>>De: lista-bounces em firebase.com.br 
>>[mailto:lista-bounces em firebase.com.br] Em nome de Edson T. Marques
>>Enviada em: sexta-feira, 21 de janeiro de 2005 14:26
>>Para: FireBase
>>Assunto: Re: RES: [firebase-br] Collate e Character Set - Mais duvidas
>>
>>Pha-Lista escreveu:
>>
>>    
>>
>>>Até o momento não.
>>>
>>>Você pode criar dominios e definir o collate neles.
>>>
>>>Dica: Sempre crie Domain se você não criar o FB faz isso 
>>>      
>>>
>>(cria dominios com nomes sequenciais), e gerar varios 
>>registros desnecessarios nas tabelas de sistema.
>>    
>>
>>> 
>>>
>>>      
>>>
>>Hei! essa pode ser a solução para definir os meus collation 
>>orders no ERWin!
>>    
>>





Mais detalhes sobre a lista de discussão lista