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

Вниз

Набор полей в Query при 3-х таблицах   Найти похожие ветки 

 
Alex8   (2007-11-02 10:06) [0]

Здравствуйте !
 Если в свойстве SQL компонента  Query1 я ссылаюсь на
3 таблицы (A, B, C), т.е  "Select * From A, B, C " , то при
обращении к редактору полей после нажатия кнопки "Add" (любой)
происходит выход из DELPHI  без всякого уведомления и без сохранения
изменений.
 В случае 2-х таблиц набор полей формируется нормапьно.
   Может быть я что-то не так делаю или существуют ограничения
на число используемых таблиц ?.  Спасибо.


 
clickmaker ©   (2007-11-02 10:10) [1]

а зачем нужны все поля из трех таблиц, причем даже не связанных никаким условием? или здесь не полный текст запроса?


 
ЮЮ ©   (2007-11-02 10:13) [2]

Декартово произведение записей Зх "полновесных" таблиц не выдержит  ни одно приложение.

См.
http://delphimaster.net/view/15-1193910910/


 
Anatoly Podgoretsky ©   (2007-11-02 10:16) [3]

> ЮЮ  (02.11.2007 10:13:02)  [2]

Это декартовое в квадрате.
А за звездочку увольнять без выходного пособия.


 
Alex8   (2007-11-02 10:36) [4]

> а зачем нужны все поля из трех таблиц.....

  Мне не нужны все поля. Но как отобрать нужные,
если в SQL  изначально не указана нужная таблица ?
 Select * From A, B, C вносится первоначально для
формирования нужного набора полей, которые берутся
из 3-х таблиц.  Это позволит в дальнейшем обойтись
одним запросом.
  А потом я проверил - решающим фактором является
число таблиц, а не число полей.


 
ЮЮ ©   (2007-11-02 10:43) [5]



Первоначально, надо связать таблицы, чтобы каждой записи в одной таблице соответствовало нужное количество записей из другой.
А в случае SELECT FROM А, В
для
А (Id) и B(Id)
1           1
2           2
3           3
В результате получаем 9 записей
1  1
1  2
1  3
...
3  2
3  3

Это и есть "произведение" таблиц.  


> решающим фактором является
> число таблиц

А кто бы сомневался :)


 
Anatoly Podgoretsky ©   (2007-11-02 10:47) [6]


> > решающим фактором является
> > число таблиц
>
> А кто бы сомневался :)

Вообще то решающий фактор Голова, а число таблиц - количественный


 
Alex8   (2007-11-02 10:57) [7]

> Вообще то решающий фактор Голова ....

Спасибо. Все понял. Поля сформированы.
Немного дольше, чем через звездочку,
но это не так важно.


 
ЮЮ ©   (2007-11-02 11:07) [8]

>
> Спасибо. Все понял. Поля сформированы.
> Немного дольше, чем через звездочку,
> но это не так важно.


Главное - не поля, а связи между таблицами.
Показывай, что получилось!


 
Alex8   (2007-11-02 12:08) [9]

> Главное - не поля, а связи между таблицами.
> Показывай, что получилось!

Просто неприятие звездочки привело к тому, что
Вместо   "Select * From A, B, C"
записать в исходном SQL
"Select  A.p1, B.p2, C.p3  From A, B, C"
и после нажатия "Add all Fields" набор
полей сформировался.
 Т.е. дело все-таки в суммарном числе полей.

А связи между таблицами будут указаны
при програмном формировании текста
рабочего Select.
 Тут проблем нет. Части записей талицы А
соответствует группа записей таблицы В
(связь по ключу). Аналогично. Некоторым записям талицы В
соответствует группа записей таблицы С.
Еще раз спасибо.



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

Форум: "Начинающим";
Текущий архив: 2007.11.25;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.041 c
15-1193027762
Моисеенко
2007-10-22 08:36
2007.11.25
RT11


15-1192778317
de.
2007-10-19 11:18
2007.11.25
Этапы разработки ПО


15-1192991116
JSman
2007-10-21 22:25
2007.11.25
Как защитить свое приложение от крэков?


2-1193735286
Первокласник Вася
2007-10-30 12:08
2007.11.25
Не получается с SQL


1-1189078540
den303_work
2007-09-06 15:35
2007.11.25
Создать контрол с заранее неизвестным классом





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