[firebase-br] Fw: Duvida nos Tipos de dados do FireBird

Augusto augusto em cmsolucoes.com.br
Ter Jul 26 17:59:06 -03 2005


Quase lá....

Eduardo ficou quase perfeito....  na verdade o SQL eu já tinha...  
vou incluir as transformações de nome....

faltou o seguinte;

os campos VALOR e PERCENTUAL, ambos são numeric porém no seu 
SELECT eles voltam como NUMERI(15,2) e INTEGER respectivamente.

no meu SELECT (Sem a Transformação) eles voltam como INT64, LONG.. respectivamente..

No IDEXPERT, dando um Duploclick na TABELA a estrutura esta perfeita ou seja
NUMERI(15,2)e NUMERI(8,6)


pergunto, existe ainda mais alguma transformação 
quando for NUMERICO???


abaixo a estrutura da tabela.

valeu

Augusto
 

CREATE TABLE CADASTRO (
    IDCADASTRO       INTEGER NOT NULL,
    NOME             VARCHAR(50),
    TRGUSERINCLUSAO  VARCHAR(20) DEFAULT CURRENT_USER,
    TRGDTINCLUSAO    TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    VALOR            NUMERIC(15,2),
    PERCENTUAL       NUMERIC(8,6),
    FLGCONTROLE      CHAR(1) NOT NULL
);








----- Original Message ----- 
From: "eduardo" <eduardo em icontroller.com.br>
To: <lista em firebase.com.br>
Sent: Tuesday, July 26, 2005 5:35 PM
Subject: Re: [firebase-br] Fw: Duvida nos Tipos de dados do FireBird


> Oi Augusto:
> 
>> Não é questão de pressa. Pensei que não tinha me expressado bem, pelo
>> fato da duvida não ser tivial. 
> 
> Eu estava brincando. Esta pequena besta aí embaixo vai te dar com o que 
> brincar. Substitua o :P! na úlitma linha pelo nome de uma tabela sua e 
> veja o resultado.
> 
> SELECT DISTINCT
> A.RDB$FIELD_POSITION   AS ORDER_ID,
> A.RDB$FIELD_NAME AS F_NAME,
> CASE
> WHEN C.RDB$TYPE_NAME='LONG'  THEN 'INTEGER'
> WHEN C.RDB$TYPE_NAME='SHORT' THEN 'SMALLINT'
> WHEN C.RDB$TYPE_NAME='INT64' THEN 
> 'NUMERIC('||CAST(B.RDB$FIELD_PRECISION AS 
> VARCHAR(2))||','||CAST(B.RDB$FIELD_SCALE*-1 AS VARCHAR(2))||')'
> WHEN C.RDB$TYPE_NAME='VARYING' THEN 
> 'VARCHAR('||B.RDB$CHARACTER_LENGTH||')'
> WHEN C.RDB$TYPE_NAME='TEXT' THEN 'CHAR('||B.RDB$CHARACTER_LENGTH||')'
> WHEN C.RDB$TYPE_NAME='BLOB' THEN 'BLOB SUB_TYPE 
> '||CAST(B.RDB$FIELD_SUB_TYPE AS CHAR(1))
> ELSE
> C.RDB$TYPE_NAME
> END AS F_TIPO,
> CASE
> WHEN A.RDB$NULL_FLAG IS NULL  THEN ''
> ELSE
> 'NOT NULL'
> END AS F_NULL,
> F.RDB$FIELD_NAME AS F_PRIMARY
> FROM
> RDB$RELATION_FIELDS
> A
> LEFT JOIN RDB$FIELDS
> B ON A.RDB$FIELD_SOURCE=B.RDB$FIELD_NAME
> LEFT JOIN RDB$TYPES
> C ON C.RDB$FIELD_NAME='RDB$FIELD_TYPE' AND B.RDB$FIELD_TYPE=C.RDB$TYPE
> LEFT JOIN RDB$RELATION_CONSTRAINTS
> E ON A.RDB$RELATION_NAME=E.RDB$RELATION_NAME AND 
> E.RDB$CONSTRAINT_TYPE='PRIMARY KEY'
> LEFT JOIN RDB$INDEX_SEGMENTS
> F ON E.RDB$INDEX_NAME=F.RDB$INDEX_NAME AND 
> A.RDB$FIELD_NAME=F.RDB$FIELD_NAME
> WHERE
> A.RDB$RELATION_NAME = :P1
> 
> 
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> Para editar sua configuração na lista, use o endereço http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>


Mais detalhes sobre a lista de discussão lista