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

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

как узнать в запросе что поле ключевое?


Asderg ©   (2002-11-18 10:22:00) 

В TQuery выполняется запрос, далее нужно узнать хотя бы кол-во ключевых полей в этой таблице (исходя из этого запроса).
Возможно ли это?


Asderg   (2002-11-18 12:07:00) [1]

понял, что проблема в две строчки не решается. будем искать обходные пути...
Всем спасибо за помощь.


Sergey13   (2002-11-18 11:38:00) [2]

2Asderg © (18.11.02 10:57)
>Существуют сгенерированные таблицы
Кем? Тобой? Тогда в чем вопрос?
Не тобой? А закономерность какая то есть в именах? Например ID в имени поля - можно попробовать это использовать. Иначе, ИМХО, только через системные таблицы(если они есть - какая СУБД то?) в отдельном запросе.

ЗЫ:
>и вытаскивая данные, мне нужно пропустить именно эти ключевые поля...
Это просто любопытство (порок?), но - зачем? Обычно делается как раз наоборот. Если не знаешь зачем поле - показывают. Любой вьюер например. Может если объяснишь КОНЕЧНУЮ цель, общаться будет легче.


passm   (2002-11-18 11:28:00) [3]

Asderg © (18.11.02 10:57)> С локальной таблицей через TTable.
А в SQL надо знать СУБД.
Для IBM DB2, например:
SELECT C.*
FROM SYSCAT.COLUMNS C
WHERE C.TABSCHEMA = "EXP"
AND C.TABNAME = "DOC_TITLE"
AND C.KEYSEQ IS NOT NULL


Asderg   (2002-11-18 10:57:00) [4]

2 Sergey13 : Ключевое поле - Primary key в SQL, "*" - в DatabaseDesktop :)
Существуют сгенерированные таблицы, в которых кол-во ключевых полей может быть различно, и вытаскивая данные, мне нужно пропустить именно эти ключевые поля...


passm   (2002-11-18 10:54:00) [5]

Asderg © (18.11.02 10:49)> Почему же TTable. Есть системные таблицы...


Sergey13   (2002-11-18 10:52:00) [6]

2Asderg © (18.11.02 10:29)
>Можно ли из этого объекта TQuery (который сделал выборку) достать кол-во ключевых полей в таблице?
А что в твоем понимании "ключевое поле"? И чем оно отличается от остальных?
На вскидку - для готового(выполненого) запроса - нельзя. Можно поспрашивать системные таблицы, но тогда см. stone © (18.11.02 10:24)

ЗЫ: А зачем тебе это, если не секрет? Какова конечная цель?


Asderg   (2002-11-18 10:49:00) [7]

2 passm : вы абсолютно правы..
теперь понял абсурдность задачи (для разных субд). неужели необходимо тянуть за запросом еще и TTable (TIBTable) ? :(
просто предполагалось использовать обе субд (Paradox, IB) в зависимости от настроек.


passm   (2002-11-18 10:45:00) [8]

Asderg © (18.11.02 10:29)> TQuery возвращает в общем случае набор данных, который может быть результатом из нескольких таблиц базы данных. Что в этом случае считать за ключевые поля?
Может быть, вопрос следует перефразировать: как определить набор ключевых полей для таблицы БД?
Для ответа необходимо знать СУБД.


Asderg   (2002-11-18 10:29:00) [9]

через бде тяну.для TQuery, кажись, неважно.
Можно ли из этого объекта TQuery (который сделал выборку) достать кол-во ключевых полей в таблице?


stone   (2002-11-18 10:24:00) [10]

а тип БД какой?


Наверх

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