Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Получить список полей, их типы и индексы при помощи SQL [MS Jet 4.0(Access)]


-=XP=- ©   (2005-05-05 14:55:00) 

Есть ли средства для получения списка полей в таблице (с указанием их типа данных, размера) при помощи SQL запроса? Какая системная таблица хранит эти данные?
Чтобы получить нечто наподобие:

Name      Type      Size
Field1    CHAR      10
Field2    INTEGER
Field3    TEXT


И то же самое по индексам: наименование индекса, какие поля входя в индекс, дополнительные параметры.


Anatoly Podgoretsky   (2005-05-05 19:21:00) [1]

sniknik ©   (05.05.05 17:45) [7]
И пример Adotest, там широко используется схема, для визуального создания запросов и много другого. Кстати очень приятный пример для ознакомления с возможностями АДО


Anatoly Podgoretsky   (2005-05-05 19:20:00) [2]

Я подозревал :-)
Все таки Микрософт и он многое взял из Акцесс, ведь в свое время это был их продукт номер один, это сейчас они стараются перенаправить пользователей на MSDE


sniknik   (2005-05-05 17:45:00) [3]

> ... возможно она доступна и для Акцесс.
точно доступна,
вплоть до связок по форейн кеу, и описателей (description) полей, не говоря уж о типах. и открывать таблицу (выкачивать все записи) только для узнавания структуры не придется.

-=XP=-
см. хелп по методу OpenSchema.


DSKalugin   (2005-05-05 16:51:00) [4]

>Но как определить наличие индекса для таблицы без использования TADOTable?
А чем тебе АДО не устраивает не могу понять. Чем как не АДО ковырять Акцесс?
>Каким образом определить наличие того или иного индекса в таблице?
Получить список индексов и проверить в нем наличие искомого с помощью TADOTable.GetIndexNames


Anatoly Podgoretsky   (2005-05-05 16:42:00) [5]

В АДО есть понятие схема, возможно она доступна и для Акцесс. Через схему можно получить абсолютно все метаданные.


-=XP=-   (2005-05-05 16:21:00) [6]

RDB$FIELDS
Was ist das?

В Access такого, увы, нет.
Всякие MSYSObjects, MSYSAccess не дают того, что нужно.
Может, какая-то скрытая таблица есть?


-=XP=-   (2005-05-05 16:18:00) [7]

Но как определить наличие индекса для таблицы без использования TADOTable? TADOQuery не имеет свойства IndexDefs. Каким образом определить наличие того или иного индекса в таблице?


Lexer   (2005-05-05 16:16:00) [8]

select R.RDB$RELATION_NAME, R.RDB$FIELD_POSITION, R.RDB$FIELD_NAME,
F.RDB$FIELD_LENGTH, F.RDB$FIELD_TYPE, F.RDB$FIELD_SCALE, F.RDB$FIELD_SUB_TYPE
from RDB$FIELDS F, RDB$RELATION_FIELDS R
where F.RDB$FIELD_NAME = R.RDB$FIELD_SOURCEand R.RDB$SYSTEM_FLAG = 0
order by R.RDB$RELATION_NAME, R.RDB$FIELD_POSITION


DSKalugin   (2005-05-05 15:17:00) [9]

Не знаю как там в SQL но обычными компонентами эту информацию можно получить манипулируя методами объектов TFieldDefsи TIndexDefs


Наверх

Титульная страница Поиск, карта сайта Написать письмо