Cuestión : Firebird: para conseguir los tipos de datos de todos los campos en tablas de usuario

Intento bien una pregunta como abajo en firebird: el

SELECT b.RDB$FIELD_NAME, d.RDB$TYPE_NAME,
c.RDB$FIELD_LENGTH, a
INNER de b.RDB$NULL_FLAG
FROM RDB$RELATIONS ENSAMBLA el b
ON de RDB$RELATION_FIELDS a.RDB$RELATION_NAME = b.RDB$RELATION_NAME
INNER ENSAMBLA el c
ON de RDB$FIELDS b.RDB$FIELD_SOURCE = c.RDB$FIELD_NAME
INNER ENSAMBLA el d
ON de RDB$TYPES c.RDB$FIELD_TYPE = d.RDB$TYPE
WHERE a.RDB$SYSTEM_FLAG = 0
Y d.RDB$FIELD_NAME = el Br/>ORDER de “RDB$FIELD_TYPE” Y de b.RDB$RELATION_NAME='tablename'< POR a.RDB$RELATION_NAME, pregunta de b.RDB$FIELD_ID


this me vuelve una tabla pero quiero no no total. tipos de datos de la necesidad del

I de los campos como nvarchar (20) o número entero y tal. Pronto los coulmns que necesito son el

COLUMN_NAME, DATA_TYPE, DATA_LENGTH, NULLABLE.

When hago una pregunta en tipos como below

select rdb$type_name de RDB$TYPES

that me vuelvo los tipos. Pero no sé cuál es incorrecto, porque no puedo ver los tipos como el número entero (int32, internacional o NÚMERO ENTERO) y etc. varchar. También me pregunto cómo puedo enumerar todos estos tipos. Gracias ya por cualquie help.
class= del

Respuesta : Firebird: para conseguir los tipos de datos de todos los campos en tablas de usuario

Utiliza nombres internos del datatype.
CORTO para SMALLINT
DE LARGO para el NÚMERO ENTERO
VARIACIÓN para VARCHAR
TEXTO para el CARBÓN DE LEÑA

Usted puede utilizar esta idea:
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:
SELECCIONAR CAMPOS.RDB$FIELD_NAME DISTINTO COMO COLUMN_NAME, 
CASO 
 CUANDO DADOSCAMPO.RDB$FIELD_PRECISION > 0 ENTONCES “NUMÉRICO” 
 CUANDO TIPOS.RDB$TYPE_NAME = “DE LARGO” ENTONCES “NÚMERO ENTERO” 
 CUANDO TIPOS.RDB$TYPE_NAME = ENTONCES “SMALLINT “CORTOS”” 
 CUANDO TIPOS.RDB$TYPE_NAME = “INT64” ENTONCES “NUMÉRICO” 
 CUANDO TIPOS.RDB$TYPE_NAME = ENTONCES “VARCHAR “DIVERSOS”” 
 CUANDO TIPOS.RDB$TYPE_NAME = “TEXTO” ENTONCES “SOCARRAN” 
 CUANDO TIPOS.RDB$TYPE_NAME = “BLOB” ENTONCES “BLOB SUB_TYPE” 
   TIPOS.RDB$TYPE_NAME OTRO 
 EXTREMO COMO FIELD_TYPE, 
 CASO 
 CUANDO DADOSCAMPO.RDB$FIELD_TYPE EN (16.8) ENTONCES DADOSCAMPO.RDB$FIELD_PRECISION 
   DADOSCAMPO.RDB$FIELD_LENGTH OTRO 
 EXTREMO COMO DATA_LENGTH, DADOSCAMPO.RDB$FIELD_SCALE COMO DATA_SCALE, 
 CASO CAMPOS.RDB$NULL_FLAG CUANDO 1 ENTONCES EXTREMO OTRO DE “Y” DE “N” COMO NULLABLE 
 DE 
   RDB$RELATIONS TABELAS, CAMPOS DE RDB$RELATION_FIELDS, RDB$FIELDS 
   DADOSCAMPO, RDB$TYPES TIPOS 
 DONDE TABELAS.RDB$RELATION_NAME = “PESSOAS” 
   Y TIPOS.RDB$FIELD_NAME = “RDB$FIELD_TYPE” 
   Y TABELAS.RDB$RELATION_NAME = CAMPOS.RDB$RELATION_NAME 
   Y CAMPOS.RDB$FIELD_SOURCE = DADOSCAMPO.RDB$FIELD_NAME 
   Y DADOSCAMPO.RDB$FIELD_TYPE = TIPOS.RDB$TYPE 
   ORDEN POR CAMPOS.RDB$FIELD_POSITION
Otras soluciones  
 
programming4us programming4us