Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2011.11.13;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.004 c
1-1273069609
Zoom
2010-05-05 18:26
2011.11.13
Почему перестает работать кнопка "Свернуть" ?


2-1311177238
alexdn
2011-07-20 19:53
2011.11.13
Функция определения цвета пикселя


2-1311321505
ixen
2011-07-22 11:58
2011.11.13
Как узнать тип поля?


1-1272350903
Юрий Зотов
2010-04-27 10:48
2011.11.13
Ошибка создания формы в design-time


15-1310504388
Gu
2011-07-13 00:59
2011.11.13
Delphi Pulsar и Xe2 beta





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский