Главная страница
    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.033 c
3-1115551746
Zahar
2005-05-08 15:29
2005.06.14
Помогите с SQL-запросом.


14-1116913099
cyborg
2005-05-24 09:38
2005.06.14
25 фактов о Звездных войнах


1-1116967301
grol
2005-05-25 00:41
2005.06.14
Как правильно урезать переменную Real?


14-1116913483
cyborg
2005-05-24 09:44
2005.06.14
Не включайте компьютер


14-1116906917
Zer0
2005-05-24 07:55
2005.06.14
Generation G





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