[firebase-br] campo zerado - Parte II

Sandro Souza escovadordebits em gmail.com
Sex Dez 5 15:59:55 -03 2008


Já viu algum dia uma Zicassaura Rex Tabajara Plus 2.0 Enhanced? Não? É só
brincar dessa forma. :D

2008/12/5 joao_jma <joao_jma em itelefonica.com.br>

> ajudou muito
>
> gostaria de perguntar
>
> criei um domínio com o tipo numeric(15,2)
>
> acha que se eu alterar os dominios dos campos pode dar zica tb?
>
> assim talvez:
>
> update RDB$RELATION_FIELDS set
> RDB$FIELD_SOURCE = 'VALOR_15_2'  --> nome do domínio
> where (RDB$RELATION_NAME = 'CALC_HE') and
>      RDB$FIELD_NAME IN ('PORC_SIND',
>                         'SAL_REAL',
>                         'SAL_CART',
>                         'TOT_HR_R',
>                         'TOT_HE_SR',
>                         'TOT_HE_SC');
>
>
>
> Assinatura João M. de Amorim - Informática: Andreza Enxovais - Ibitinga/SP
> ((16) 3341-9000 È(16) 9239-0959
> ----- Original Message ----- From: "Sandro Souza" <
> escovadordebits em gmail.com>
> To: "FireBase" <lista em firebase.com.br>
> Sent: Friday, December 05, 2008 2:31 PM
> Subject: Re: [firebase-br] campo zerado - Parte II
>
>
> Bom dia/tarde João.
>
> Ontem, eu te passei o seguinte comando:
>
> ALTER TABLE MOVIMENTACAO
>  ALTER PROVENTOS TYPE DECIMAL(18,4),
>  ALTER DESCONTOS TYPE DECIMAL(18,4);
>
> Mas testando aqui, realmente ocorreu o erro que você relatou.
>
> Então, a melhor solução é a do nosso amigo Gustavo Moda, que deixou bem
> detalhado o roteiro, que para esse seu caso da tabela CALC_HE, seria algo
> como:
>
> 1 - Incluindo os novos campos substitutos, já com os novos formatos:
>
> ALTER TABLE CALC_HE
>  ADD NOVO_SAL_REAL NUMERIC(15,2),
>  ADD NOVO_TOT_HR_R NUMERIC(15,2),
>  ADD NOVO_TOT_HE_SR NUMERIC(15,2);
>
> 2 - Copiando e convertendo os valores do formato antigo para o novo:
>
> UPDATE CALC_HE SET
>  NOVO_SAL_REAL = SAL_REAL,
>  NOVO_TOT_HR_R = TOT_HR_R,
>  NOVO_TOT_HE_SR = TOT_HE_SR;
>
> 3 - Excluindo os campos antigos:
>
> ALTER TABLE CALC_HE
>  DROP SAL_REAL,
>  DROP TOT_HR_R,
>  DROP TOT_HE_SR;
>
> 4 - Renomeando os novos campos para os nomes originais:
>
> ALTER TABLE CALC_HE
>  ALTER NOVO_SAL_REAL TO SAL_REAL,
>  ALTER NOVO_TOT_HR_R TO TOT_HR_R,
>  ALTER NOVO_TOT_HE_SR TO TOT_HE_SR;
>
> Pode testar esse aí, que funcionou aqui.
>
> Posso até estar enganado, mas acredito que, antes disso, seria melhor
> alterar o tipo desses campos de volta para FLOAT pelo IB Expert, já que ele
> não converteu realmente os valores, e apenas alterou a definição desses
> campos, o que deixa uma "bomba de efeito retardado" que estourará mais
> adiante.
>
> Espero ter ajudado mais que atrapalhado. :D
>
> 2008/12/5 joao_jma <joao_jma em itelefonica.com.br>
>
>  Se o pessoal se lembra de ontem, resolveram meu problema, eu usava campo
>> Float ao invés de Numeric(15,2).
>>
>> Não me recordo quem, mas me passaram um código para alteração dos tipos
>> dos
>> campos, o que seria muito prático pra mim.
>> Segue abaixo o código:
>>
>> ALTER TABLE CALC_HE
>>  ALTER SAL_REAL TYPE NUMERIC(15,2),
>>  ALTER TOT_HR_R TYPE NUMERIC(15,2),
>>  ALTER TOT_HE_SR TYPE NUMERIC(15,2);
>>
>> Quando executo esse comando, me retorna o seguinte erro:
>>
>> can't format message 13:393 -- message system code -4.
>> unsuccessful metadata update.
>> Cannot change datatype for SAL_REAL.  Conversion from base type FLOAT to
>> BIGINT is not supported.
>>
>> Alguém pode me ajudar? Senão terei que alterar campo a campo na base de
>> dados... rs
>>
>> Abraços
>>
>>   João M. de Amorim - Informática:
>>   Andreza Enxovais - Ibitinga/SP
>>   ((16) 3341-9000
>>
>> ______________________________________________
>> 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