Pergunta : Firebird: para começ tipos de dados de todos os campos em tabelas de usuário

Bem eu tento uma pergunta como abaixo no firebird: o

SELECT b.RDB$FIELD_NAME, d.RDB$TYPE_NAME,
c.RDB$FIELD_LENGTH, a
INNER de b.RDB$NULL_FLAG
FROM RDB$RELATIONS JUNTA-SE ao b
ON de RDB$RELATION_FIELDS a.RDB$RELATION_NAME = b.RDB$RELATION_NAME
INNER JUNTA-SE ao c
ON de RDB$FIELDS b.RDB$FIELD_SOURCE = c.RDB$FIELD_NAME
INNER JUNTA-SE ao d
ON de RDB$TYPES c.RDB$FIELD_TYPE = d.RDB$TYPE
WHERE a.RDB$SYSTEM_FLAG = 0
E d.RDB$FIELD_NAME = o Br/>ORDER de “RDB$FIELD_TYPE” E de b.RDB$RELATION_NAME='tablename'< por a.RDB$RELATION_NAME, pergunta de b.RDB$FIELD_ID


this retorna-me uma tabela mas não totalmente eu quero. tipos de dados da necessidade do

I dos campos como nvarchar (20) ou inteiro e tais. Logo os coulmns que eu preciso são o

COLUMN_NAME, DATA_TYPE, DATA_LENGTH, NULLABLE.

When eu faço uma pergunta nos tipos como o below

select rdb$type_name de RDB$TYPES

that me retorno os tipos. Mas eu não sei o que é errado, porque eu não posso ver os tipos como o inteiro (int32, int ou INTEIRO) e etc. varchar. Igualmente eu quero saber como eu posso alistar todos estes tipos. Agradecimentos já para algum help.
class= do

Resposta : Firebird: para começ tipos de dados de todos os campos em tabelas de usuário

Usa nomes internos do datatype.
CURTO para SMALLINT
POR MUITO TEMPO para o INTEIRO
VARIAÇÃO para VARCHAR
TEXTO para o CARVÃO ANIMAL

Você pode usar esta idéia:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
SELECIONAR CAMPOS.RDB$FIELD_NAME DISTINTO COMO COLUMN_NAME, 
CASO 
 QUANDO DADOSCAMPO.RDB$FIELD_PRECISION > 0 ENTÃO “NUMÉRICO” 
 QUANDO TIPOS.RDB$TYPE_NAME = “POR MUITO TEMPO” ENTÃO “INTEIRO” 
 QUANDO TIPOS.RDB$TYPE_NAME = ENTÃO “SMALLINT “CURTOS”” 
 QUANDO TIPOS.RDB$TYPE_NAME = “INT64” ENTÃO “NUMÉRICO” 
 QUANDO TIPOS.RDB$TYPE_NAME = ENTÃO “VARCHAR “DE VARIAÇÃO”” 
 QUANDO TIPOS.RDB$TYPE_NAME = “TEXTO” ENTÃO “CARBONIZAREM” 
 QUANDO TIPOS.RDB$TYPE_NAME = “GOTA SUB_TYPE” DA “GOTA” ENTÃO 
   TIPOS.RDB$TYPE_NAME OUTRO 
 EXTREMIDADE COMO FIELD_TYPE, 
 CASO 
 QUANDO DADOSCAMPO.RDB$FIELD_TYPE (16.8) ENTÃO EM DADOSCAMPO.RDB$FIELD_PRECISION 
   DADOSCAMPO.RDB$FIELD_LENGTH OUTRO 
 EXTREMIDADE COMO DATA_LENGTH, DADOSCAMPO.RDB$FIELD_SCALE COMO DATA_SCALE, 
 CASO CAMPOS.RDB$NULL_FLAG QUANDO 1 ENTÃO EXTREMIDADE OUTRA DE “Y” DE “N” COMO NULLABLE 
 DE 
   RDB$RELATIONS TABELAS, RDB$RELATION_FIELDS CAMPOS, RDB$FIELDS 
   DADOSCAMPO, RDB$TYPES TIPOS 
 ONDE TABELAS.RDB$RELATION_NAME = “PESSOAS” 
   E TIPOS.RDB$FIELD_NAME = “RDB$FIELD_TYPE” 
   E TABELAS.RDB$RELATION_NAME = CAMPOS.RDB$RELATION_NAME 
   E CAMPOS.RDB$FIELD_SOURCE = DADOSCAMPO.RDB$FIELD_NAME 
   E DADOSCAMPO.RDB$FIELD_TYPE = TIPOS.RDB$TYPE 
   ORDEM POR CAMPOS.RDB$FIELD_POSITION
Outras soluções  
 
programming4us programming4us