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

Вниз

Получить список полей, их типы и индексы при помощи SQL   Найти похожие ветки 

 
-=XP=- ©   (2005-05-05 14:55) [0]

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

Name      Type      Size
Field1    CHAR      10
Field2    INTEGER
Field3    TEXT


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


 
DSKalugin ©   (2005-05-05 15:17) [1]

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


 
Lexer ©   (2005-05-05 16:16) [2]

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_SOURCE and R.RDB$SYSTEM_FLAG = 0
order by R.RDB$RELATION_NAME, R.RDB$FIELD_POSITION


 
-=XP=- ©   (2005-05-05 16:18) [3]

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


 
-=XP=- ©   (2005-05-05 16:21) [4]

RDB$FIELDS
Was ist das?

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


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

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


 
DSKalugin ©   (2005-05-05 16:51) [6]

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


 
sniknik ©   (2005-05-05 17:45) [7]

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

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


 
Anatoly Podgoretsky ©   (2005-05-05 19:20) [8]

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


 
Anatoly Podgoretsky ©   (2005-05-05 19:21) [9]

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



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

Форум: "Базы";
Текущий архив: 2005.06.14;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.041 c
4-1113995312
anjey
2005-04-20 15:08
2005.06.14
Как спрятать програму от Alt+Tab


1-1117540421
makey
2005-05-31 15:53
2005.06.14
запись в текстовый файл длинных строк


4-1114073934
Ярослав
2005-04-21 12:58
2005.06.14
Текс контрола другого приложения


1-1117000756
Cash
2005-05-25 09:59
2005.06.14
Как правильно создать контрол из DLL


1-1117122983
Hromosom
2005-05-26 19:56
2005.06.14
Как двигать окно программы нажав на ней мышью?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский