Вопрос : Firebird: получить типы данных всех полей в таблицах потребителя

Наилучшим образом я пытаюсь вопрос как ниже в firebird:

SELECT b.RDB$FIELD_NAME, d.RDB$TYPE_NAME,
c.RDB$FIELD_LENGTH, a
INNER b.RDB$NULL_FLAG
FROM RDB$RELATIONS СОЕДИНЯЕТ b
ON RDB$RELATION_FIELDS a.RDB$RELATION_NAME = b.RDB$RELATION_NAME
INNER СОЕДИНЯЕТ c
ON RDB$FIELDS b.RDB$FIELD_SOURCE = c.RDB$FIELD_NAME
INNER СОЕДИНЯЕТ d
ON RDB$TYPES c.RDB$FIELD_TYPE = d.RDB$TYPE
WHERE a.RDB$SYSTEM_FLAG = 0
И d.RDB$FIELD_NAME = br/>ORDER «RDB$FIELD_TYPE» И b.RDB$RELATION_NAME='tablename'< a.RDB$RELATION_NAME, вопросом b.RDB$FIELD_ID


this возвращает меня таблица но полно я хочу. типы данным по потребности

I полей как nvarchar (20) или интежера и таких. Коротк coulmns, котор мне будут

COLUMN_NAME, DATA_TYPE, DATA_LENGTH, NULLABLE.

When я делаю вопрос в типах как below

select rdb$type_name от RDB$TYPES

that возвращает меня типы. Но я не знаю неправильно, потому что я не могу увидеть типы по мере того как интежер (int32, int или ИНТЕЖЕР) и varchar etc. также я интересую как я могу перечислить все эти типы. Спасибо уже для всех help.
class=

Ответ : Firebird: получить типы данных всех полей в таблицах потребителя

Оно использует внутренне имена datatype.
КОРОТКО для SMALLINT
ДЛИНОЙ для ИНТЕЖЕРА
МЕНЯТЬ для VARCHAR
ТЕКСТ для ЧАРСА

Вы можете использовать эту идею:
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:
ВЫБЕРИТЕ ОПРЕДЕЛЕННОЕ CAMPOS.RDB$FIELD_NAME КАК COLUMN_NAME, 
СЛУЧАЙ 
 КОГДА DADOSCAMPO.RDB$FIELD_PRECISION > 0 ПОСЛЕ ЭТОГО «ЧИСЛЕННОЕ» 
 КОГДА TIPOS.RDB$TYPE_NAME = «ДЛИНОЙ» ПОСЛЕ ЭТОГО «ИНТЕЖЕР» 
 КОГДА TIPOS.RDB$TYPE_NAME = «КОРОТКИЕ» ПОСЛЕ ЭТОГО «SMALLINT» 
 КОГДА TIPOS.RDB$TYPE_NAME = «INT64» ПОСЛЕ ЭТОГО «ЧИСЛЕННОЕ» 
 КОГДА TIPOS.RDB$TYPE_NAME = «МЕНЯЯ» ПОСЛЕ ЭТОГО «VARCHAR» 
 КОГДА TIPOS.RDB$TYPE_NAME = «ТЕКСТ» ПОСЛЕ ЭТОГО «СГОРАЮТ» 
 КОГДА TIPOS.RDB$TYPE_NAME = «ШАРИК SUB_TYPE» «ШАРИКА» ПОСЛЕ ЭТОГО 
   ДРУГОЕ TIPOS.RDB$TYPE_NAME 
 КОНЕЦ КАК FIELD_TYPE, 
 СЛУЧАЙ 
 КОГДА DADOSCAMPO.RDB$FIELD_TYPE В (16.8) ПОСЛЕ ЭТОГО DADOSCAMPO.RDB$FIELD_PRECISION 
   ДРУГОЕ DADOSCAMPO.RDB$FIELD_LENGTH 
 КОНЕЦ КАК DATA_LENGTH, DADOSCAMPO.RDB$FIELD_SCALE КАК DATA_SCALE, 
 СЛУЧАЙ CAMPOS.RDB$NULL_FLAG КОГДА 1 ПОСЛЕ ЭТОГО КОНЕЦ «Y» «N» ДРУГОЙ КАК NULLABLE 
 ОТ 
   RDB$RELATIONS TABELAS, RDB$RELATION_FIELDS CAMPOS, RDB$FIELDS 
   DADOSCAMPO, RDB$TYPES TIPOS 
 ГДЕ TABELAS.RDB$RELATION_NAME = «PESSOAS» 
   И TIPOS.RDB$FIELD_NAME = «RDB$FIELD_TYPE» 
   И TABELAS.RDB$RELATION_NAME = CAMPOS.RDB$RELATION_NAME 
   И CAMPOS.RDB$FIELD_SOURCE = DADOSCAMPO.RDB$FIELD_NAME 
   И DADOSCAMPO.RDB$FIELD_TYPE = TIPOS.RDB$TYPE 
   ЗАКАЗ CAMPOS.RDB$FIELD_POSITION
Другие решения  
  •  Как я добавляю кнопки на форме PDF для того чтобы добавить/извлекаю рядки данных?
  •  Шнур ошибки в блоке задвижки?
  •  сколько вариант сервера SQL на одной машине
  •  Внешний вид 2007 не может архивный файл открытой сети сохраненный
  •  Активно директория DNS записывает вопрос
  •  Отчет о доступа 2010 экспорта к CSV с коллекторами?
  •  Прокладчик OCE 9400 не начинает
  •  как добавить десятичное место в формуле в отчете о кристалла seagate
  •  Windows XP и Мичрософт Оутлоок и проблемы установителя Windows
  •  VB6 к VS2010 - консультации тренировки?
  •  
    programming4us programming4us