Страница 1 из 1

Запрос к системным таблицам

Добавлено: 03 мар 2005, 13:26
Дмитрий
Люди добрые, помогите!

Нужен текст запроса к системным таблицам, который для определенной таблицы возвращает: название поля, тип поля, описание поля. Поля должны следовать в том порядке, в котором указывались при создании таблицы.

Просьба не отправлять к документации. Пробовал сам написать, но ИБ эксперт ругается последними словами, что типа транзакция не стартована и т.п. Окошки разные выбрасывает, проверить запрос не дает! :cry:

Добавлено: 03 мар 2005, 14:18
kdv
www.ibase.ru/devinfo/sysqry.htm

между прочим, это вторая ссылка если на ibase.ru в "поиск" набрать "запрос к системным таблицам.
Пробовал сам написать, но ИБ эксперт ругается последними словами, что типа транзакция не стартована и т.п. Окошки разные выбрасывает, проверить запрос не дает!
это бред, ибо IBE как и серверу все равно - запрос это к обычным таблицам или к системным.

Добавлено: 03 мар 2005, 15:31
Дмитрий
это бред, ибо IBE как и серверу все равно - запрос это к обычным таблицам или к системным
Это не бред. Запускаем в эксперте SQL-монитор и смотрим, как эксперт получает эти данные. Копируем запрос и выполняем. И после этого начинается ругань.

Добавлено: 03 мар 2005, 20:16
kdv
ругань где, в SQL Editor? На что??? сроду в IBE не было никакой ругани на запросы хоть к каким таблицам.

Ты из моего документа запрос взял? Выполнил? Ругань была?

Добавлено: 04 мар 2005, 09:53
Дмитрий
ругань где, в SQL Editor
В нем, родимом. После выполнения запроса, когда появляется окошко результатов, вся эта ругань и начинается. Типа, транзакция не стартована, нарушение доступа и т.п. Причем, это только на запросах к таблицам RDB$...
Ты из моего документа запрос взял? Выполнил? Ругань была?
Взял, выполнил, все ОК!

Единственное, так и не вытащил дескрипшн полей. :cry:

Добавлено: 04 мар 2005, 10:11
kdv
В нем, родимом. После выполнения запроса, когда появляется окошко результатов, вся эта ругань и начинается. Типа, транзакция не стартована, нарушение доступа и т.п. Причем, это только на запросах к таблицам RDB$...
приведи пример запроса. не верю я в это. или у тебя какой-то древний IBExpert, или это барабашка.
Единственное, так и не вытащил дескрипшн полей.
какие проблемы, товарищ!? запрос написан человеческим языком. системные таблицы не являются секретом, все видно как на ладони. такая проблема добавить к селекту rdb$description из rdb$fields ?

ты на запрос-то посмотри, там все проще некуда.

Добавлено: 04 мар 2005, 10:20
Дмитрий
приведи пример запроса
Да все просто. Открываешь SQL монитор. Кликаешь по какой-нибудь таблице и смотришь, что экперт делает. Копируешь из монитра самый большой запрос и выполняешь. У меня начинается ругань.
или у тебя какой-то древний IBExpert
2004.12.14
такая проблема добавить к селекту rdb$description из rdb$fields
Так добавлял! NULL возвращает, а в эксперте видно!

Добавлено: 04 мар 2005, 10:40
kdv
1. открыл монитор, скопировал "какой-нибудь" запрос. выполнил в SQL Editor. все ОК. IBE 2005.01.16, вопрос тогда к твоему старому IBE?

2. запрос смотрел, фары протирал, по колесам стучал? :) Таблицу rdb$relation_fields видел? подумай хоть чуть над запросом.
список таблиц - rdb$relations. список их столбцов - rdb$relation_fields. список полных описаний столбцов - rdb$fields. IBE наверняка для доменов описание кладет в rdb$description для rdb$fields, а для столбцов таблицы - в rdb$relation_fields.

Добавлено: 04 мар 2005, 10:42
kdv
и еще - ну раз ты в sql monitor смотришь, то вот такое например видел?

Код: Выделить всё

select RDB$DESCRIPTION from RDB$RELATION_FIELDS
where (RDB$RELATION_NAME = 'RDB$RELATION_CONSTRAINTS') and
(RDB$FIELD_NAME = 'RDB$CONSTRAINT_TYPE')

  IDX_NAME = RDB$INDEX_6
это тебе прямо намек, откуда оно описание столбцов берет. последняя строка к запросу не имеет отношения - это сервисный вывод IBE. Может ты именно такой запрос в SQL Editor вставляешь?

Добавлено: 04 мар 2005, 11:17
Дмитрий
Может ты именно такой запрос в SQL Editor вставляешь
Дим, я понимаю, что меня не видно, но все равно, разве я похож на дурака?

Насчет DESCRIPTION приношу извинения. Это я вчера не из той базы выбирал. Там описаний действительно нет.
вопрос тогда к твоему старому IBE
Скорей всего к нему. Кажется, я понял, в чем дело. Транзакции не подтвержденные в IBE могут на это влиять?

Добавлено: 04 мар 2005, 11:31
kdv
Дим, я понимаю, что меня не видно, но все равно, разве я похож на дурака?
а я? и ссылки на свой сайт даю, и запросы проверяю... :)
Скорей всего к нему. Кажется, я понял, в чем дело. Транзакции не подтвержденные в IBE могут на это влиять?
не-зна-ю. я вообще впервые вижу подобное поведение. с этим лучше в конфу к Хвастунову, только обновить IBE надо. А то и вдруг у него был наведенный баг, и он его исправил.