Форум: "Базы";
Текущий архив: 2002.12.05;
Скачать: [xml.tar.bz2];
Внизкак узнать в запросе что поле ключевое? Найти похожие ветки
← →
Asderg (2002-11-18 10:22) [0]В TQuery выполняется запрос, далее нужно узнать хотя бы кол-во ключевых полей в этой таблице (исходя из этого запроса).
Возможно ли это?
← →
stone (2002-11-18 10:24) [1]а тип БД какой?
← →
Asderg (2002-11-18 10:29) [2]через бде тяну.для TQuery, кажись, неважно.
Можно ли из этого объекта TQuery (который сделал выборку) достать кол-во ключевых полей в таблице?
← →
passm (2002-11-18 10:45) [3]Asderg © (18.11.02 10:29)> TQuery возвращает в общем случае набор данных, который может быть результатом из нескольких таблиц базы данных. Что в этом случае считать за ключевые поля?
Может быть, вопрос следует перефразировать: как определить набор ключевых полей для таблицы БД?
Для ответа необходимо знать СУБД.
← →
Asderg (2002-11-18 10:49) [4]2 passm : вы абсолютно правы..
теперь понял абсурдность задачи (для разных субд). неужели необходимо тянуть за запросом еще и TTable (TIBTable) ? :(
просто предполагалось использовать обе субд (Paradox, IB) в зависимости от настроек.
← →
Sergey13 (2002-11-18 10:52) [5]2Asderg © (18.11.02 10:29)
>Можно ли из этого объекта TQuery (который сделал выборку) достать кол-во ключевых полей в таблице?
А что в твоем понимании "ключевое поле"? И чем оно отличается от остальных?
На вскидку - для готового(выполненого) запроса - нельзя. Можно поспрашивать системные таблицы, но тогда см. stone © (18.11.02 10:24)
ЗЫ: А зачем тебе это, если не секрет? Какова конечная цель?
← →
passm (2002-11-18 10:54) [6]Asderg © (18.11.02 10:49)> Почему же TTable. Есть системные таблицы...
← →
Asderg (2002-11-18 10:57) [7]2 Sergey13 : Ключевое поле - Primary key в SQL, "*" - в DatabaseDesktop :)
Существуют сгенерированные таблицы, в которых кол-во ключевых полей может быть различно, и вытаскивая данные, мне нужно пропустить именно эти ключевые поля...
← →
passm (2002-11-18 11:28) [8]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
← →
Sergey13 (2002-11-18 11:38) [9]2Asderg © (18.11.02 10:57)
>Существуют сгенерированные таблицы
Кем? Тобой? Тогда в чем вопрос?
Не тобой? А закономерность какая то есть в именах? Например ID в имени поля - можно попробовать это использовать. Иначе, ИМХО, только через системные таблицы(если они есть - какая СУБД то?) в отдельном запросе.
ЗЫ:
>и вытаскивая данные, мне нужно пропустить именно эти ключевые поля...
Это просто любопытство (порок?), но - зачем? Обычно делается как раз наоборот. Если не знаешь зачем поле - показывают. Любой вьюер например. Может если объяснишь КОНЕЧНУЮ цель, общаться будет легче.
← →
Asderg (2002-11-18 12:07) [10]понял, что проблема в две строчки не решается. будем искать обходные пути...
Всем спасибо за помощь.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.12.05;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.007 c