Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
1-14572
alvin
2002-11-27 08:37
2002.12.05
Реестр в WinAPI


1-14548
FLAW
2002-11-24 00:15
2002.12.05
Посоветуйте, пожалуйста, как лучше отсортировать текстовый файл.


1-14683
Xsid
2002-11-24 23:22
2002.12.05
Массив компонентов


7-14844
VIB
2002-10-01 13:32
2002.12.05
GetLastError() и FormatMessage()


3-14455
Kurt
2002-11-18 09:32
2002.12.05
Не подскажите, а свойство Prepared только для ExecSQL команды





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