Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.11.25;
Скачать: CL | DM;

Вниз

Набор полей в 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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.013 c
8-1170069211
T54
2007-01-29 14:13
2007.11.25
Видео


6-1172990416
todeus
2007-03-04 09:40
2007.11.25
Проблема с написанием чата...


15-1188359243
georgius
2007-08-29 07:47
2007.11.25
Новая версия urlmon


15-1193335005
Ломброзо
2007-10-25 21:56
2007.11.25
Чем и как настроить роутинг


15-1193073294
БарЛог
2007-10-22 21:14
2007.11.25
В проигрывателе не играются некоторые DVD-диски