Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.11.13;
Скачать: CL | DM;

Вниз

Как узнать тип поля?   Найти похожие ветки 

 
ixen   (2011-07-22 11:58) [0]

Можно ли узнать тип поля таблицы используя только SQL запрос? СУБД Firebird.


 
Сергей М. ©   (2011-07-22 12:43) [1]

Можно.


 
ixen   (2011-07-22 12:50) [2]

Спасибо!


 
Anatoly Podgoretsky ©   (2011-07-22 12:56) [3]

Наверно тип TField у FireBird, тогда элементарно.


 
ixen   (2011-07-22 13:07) [4]

вот допустим нет делфи.. только IBExpert,фаерберд сервер и база ... вот нужно в нем выполнить sql запрос который выводит информацию о запрашиваемом поле...


 
sniknik ©   (2011-07-22 13:32) [5]

http://www.google.ru/search?q=INFORMATION_SCHEMA+Firebird+&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ru:official&client=firefox


 
ixen   (2011-07-22 13:41) [6]

нашел решение

SELECT RDB$RELATIONS.RDB$RELATION_NAME,
      RDB$RELATION_FIELDS.RDB$FIELD_NAME,
      RDB$RELATION_FIELDS.RDB$FIELD_POSITION,
      RDB$RELATION_FIELDS.RDB$FIELD_SOURCE,
      RDB$RELATION_FIELDS.RDB$NULL_FLAG,
      RDB$RELATION_FIELDS.RDB$DEFAULT_SOURCE,
      RDB$FIELDS.RDB$COMPUTED_SOURCE, RDB$FIELDS.RDB$DEFAULT_SOURCE,
      RDB$FIELDS.RDB$FIELD_TYPE, RDB$FIELDS.RDB$NULL_FLAG
FROM RDB$RELATIONS
INNER JOIN RDB$RELATION_FIELDS ON
     (RDB$RELATIONS.RDB$RELATION_NAME = RDB$RELATION_FIELDS.RDB$RELATION_NAME)
INNER JOIN RDB$FIELDS ON
     (RDB$RELATION_FIELDS.RDB$FIELD_SOURCE = RDB$FIELDS.RDB$FIELD_NAME)
WHERE
((RDB$RELATIONS.RDB$SYSTEM_FLAG = 0)
and
(RDB$RELATIONS.RDB$VIEW_SOURCE IS NULL))
ORDER BY RDB$RELATIONS.RDB$RELATION_NAME, RDB$RELATION_FIELDS.RDB$FIELD_POSITION;


всем спасибо за помощь


 
sniknik ©   (2011-07-22 15:11) [7]

вообще рекомендуют пользоваться INFORMATION_SCHEMA, а не лезть в системные таблицы. или в Firebird по другому?


 
Игорь Шевченко ©   (2011-07-22 15:55) [8]

sniknik ©   (22.07.11 15:11) [7]

"Вы хотя бы с двумя разными СУБД работали? У них пробовали SQL-ом получать интересующие данные такого рода? И как, запросы были идентичные?"

http://www.sql.ru/forum/actualthread.aspx?bid=2&tid=521448&pg=1


 
sniknik ©   (2011-07-22 16:24) [9]

> У них пробовали SQL-ом получать интересующие данные такого рода?
в ado OpenSchema получает у всех одинаково, каким образом реализуется в провайдере конкретной не особо интересует

> И как, запросы были идентичные?"
в mssql как раз на этом основании и рекомендуют... правда о идентичности "междубазовой" речь не идет, а идет о "межверсионной", типа от версии к версии системные таблицы могут меняться, а вот схемы нет.


 
Loginov Dmitry ©   (2011-07-22 20:34) [10]


> или в Firebird по другому?


Разработчики Firebird не переворачивают с ног наголову системные таблицы от версии к версии, поэтому использование системных таблиц, разумеется в меру, это нормальная практика. Плюс к тому не нужно каждый раз переучиваться.
Системные таблицы для FB - это азы ;)
К примеру, то, что в MS SQL делается так:
SELECT "hello"
в FB делается с использованием системной таблицы RDB$DATABASE:
SELECT "hello" FROM RDB$DATABASE
Я бы не стал называть это преимуществом или недостатком, так уж повелось исторически. Однако кардинально менять сложившиеся вещи - тоже нехорошо.



Страницы: 1 вся ветка

Текущий архив: 2011.11.13;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.01 c
2-1311177238
alexdn
2011-07-20 19:53
2011.11.13
Функция определения цвета пикселя


15-1310502594
Юрий
2011-07-13 00:29
2011.11.13
С днем рождения ! 13 июля 2011 среда


2-1311002277
Pcrepair
2011-07-18 19:17
2011.11.13
Сокеты. Гарантированное соединение. структура кода


4-1251798761
Bordo
2009-09-01 13:52
2011.11.13
Подключение плагина на C++ к программе на Delphi


2-1311265628
Tim
2011-07-21 20:27
2011.11.13
вывод real числа в dbgrid