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

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

Запрос из связанных таблиц [D6, Access]


Галинка ©   (2004-05-10 10:24:00) 

Есть две таблицы связанные по одному полю. В первой - параметры эпицентра землетрясения, во второй - параметры пунктов наблюдения землетрясения. На до делать выборку из первой, отображая при этом сведения из обеих в соответствующих гридах...


Anatoly Podgoretsky   (2004-05-11 16:06:00) [1]

Where P.Id_epic=:Id_epic

Двоеточие отсутствует


Anatoly Podgoretsky   (2004-05-11 16:04:00) [2]

Привести скрипты обеих таблиц, если есть обработчики то информация по ним.


Галинка   (2004-05-11 16:02:00) [3]

А SQL такие:
Для Мастер-квери:
 
  Select *
  From Epicentry E
  Where E.K_max>=14
 


Для Детайл-квери:
 
  Select P.*
  From Punkty_nabludeniya P
  Where P.Id_epic=Id_epic
 


Галинка   (2004-05-11 15:54:00) [4]

Теперь не прокручивается вторая таблица в соответствии с первой...


Галинка   (2004-05-11 14:53:00) [5]

ОШИБКУ гад выдает при активации Мастер-таблицы..."Слишком мало параметров. Нужно1."
В ДатаМодуле 1 АДОКонекшн, 2 - АДОКвери и 2 - ДатаСорса...
Конекшн настроен та базу через ОДБС. Первый ДатаСорс - на Квери1 (Мастер), второй - на Квери2 (Детайл). У ДетайлКвери в ДатаСорсе стоит ДатаСорс1.
Гриды настроены соответственно на ДатаСорсы.

В ЧЕМ ТРАБЛА...???


KA_   (2004-05-11 11:21:00) [6]

На форму поставишь два запроса TADOQuery (обзовем их MasterADOQuery и DetailADOQuery) и один TDataSource - DataSource1. У DataSource1 свойство DataSet выставляем в MasterADOQuery. В MasterADOQuery вписываем текст запроса - пусть SELECT ID_epic, Date, Time, Dolg_epic, Shir_Epic, H_gip, K_max,
Fi_0 FROM TABLE1. У DetailADOQuery выставляем свойство DataSource в DataSource1 и пишем текст запроса - SELECT ID, DelX, DelY, Inabl FROM TABLE2 WHERE ID_epic=:ID_epic.

Вот и все. Если таблицы связаны по полю ID_epic.


stone   (2004-05-10 10:57:00) [7]

Для Table1

QUERY
select * from Table1 where K_max = :K_max

для второй можно TABLE у которой установить
MasterSource := DataSource к Table1
MasterField := ID_epic


Галинка   (2004-05-10 10:43:00) [8]

Если нужна структура то вот она
Table1                       Table2
ID_epic                     ID_epic
Date                        ID
Time                        DelX
Dolg_epic                   DelY
Shir_Epic                   Inabl
H_gip
K_max
Fi_0


Anatoly Podgoretsky   (2004-05-10 10:35:00) [9]

В данной мостановке у тебя чистая master/detail конструкция, надо написать два запроса, по одному на грид, второй запрос должен быть параметрический, гдето так where ID=:ID
и вторая таблица должна быть связана с первой через DataSource


sniknik   (2004-05-10 10:32:00) [10]

и что мешает? сделай.
связь делается с помощью JOIN (inner, left, right)


stone   (2004-05-10 10:31:00) [11]

Я так понял надо просто свзать таблицы с использованием JOIN.

PS. А что в акцесе построитель запросов уже отменили


Наверх

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