[firebase-br] Identificar o Tamanho do Campo via SQL

Kelver Merlotti kmerlotti em gmail.com
Ter Out 6 17:16:19 -03 2009


Fala galera, boa tarde!

Fiz o seguinte select pra descobrir o tipo e o tamanho de um campo no FB:

select
  rf.rdb$field_name, rf.rdb$relation_name, rf.rdb$field_source,
  f.rdb$field_type, t.rdb$type_name, f.rdb$field_length,
  f.rdb$field_scale, f.rdb$field_precision, f.rdb$field_sub_type,
  f.rdb$character_length
from
  rdb$relation_fields rf join
    rdb$fields f join
      rdb$types t on t.rdb$field_name = 'RDB$FIELD_TYPE' and
                     f.rdb$field_type = t.rdb$type
    on rf.rdb$field_source = f.rdb$field_name
where
  (rf.rdb$field_name = 'NOME_DO_CAMPO' and
  rf.rdb$relation_name = 'NOME_DA_TABELA')

Com char e varchar tudo tranquilo, porém, quando o campo é Numeric,
Decimal ou Double é que a coisa complica, pelo seguinte motivo:

- Um campo NUMERIC(15,3)
   aparece no select com field_length=8 e field_scale=-3.
- Um campo NUMERIC(12,7)
   aparece no select com field_length=8 e field_scale=-7

Agora a pergunta: como fazer para descobrir se é 15, 12 ou qualquer
outro número?

Abraços!

Kelver Merlotti
Coordenador Editorial do Portal www.ActiveDelphi.com.br
Contato: kelver em activedelphi.com.br
Google: kmerlotti em gmail.com
Twitter: http://twitter.com/kmerlotti
Tem um segundo? Então, dá uma olhadinha nisso:
Um site de publicidades, de Portugal, está pagando em euros (quase 3x
mais que em reais) pra quem estiver disposto a:
* Ler anúncios
* Visitar sites
* Clicar em banners
* Navegar na NET
* Ler e-mails
* Convidar novos usuários
O pagamento é feito em cheque! Registra lá!! Não custa nada! ;-)
http://www.publipt.com/pages/index.php?refid=kmerlotti




Mais detalhes sobre a lista de discussão lista