Форум: "Начинающим";
Текущий архив: 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