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

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

Запрос на базе другого запроса [D7]


UMU ©   (2006-08-09 14:08:00) 

Использую БД Access, с помощью ADOQuery1 отбираю нужные данные.

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


UMU   (2006-08-10 10:16:00) [1]

Ребята, спасибо за помощь


Ega23   (2006-08-09 18:03:00) [2]


> Передразниваешь ?


Ой, твоего поста не заметил...


MsGuns   (2006-08-09 18:00:00) [3]

>Ega23 ©   (09.08.06 17:34) [9]

Передразниваешь ?
;)


Ega23   (2006-08-09 17:34:00) [4]

Select * from (Select что-то from Table1 T1, Table2 T2 where T1.ID=T2.ID) as A, Table3 T3
where A.что-то = T3.ID


Типа такого что-то


UMU   (2006-08-09 17:26:00) [5]


> Sergey13 ©   (09.08.06 14:37) [5]


Как я писал   UMU ©   (09.08.06 14:26) [3]

проблем нет кроме удаления таблицы.


> zdm ©   (09.08.06 14:48) [6]
> DataModule1.ADOQuery_tmp:=DataModule1.ADOQuery_tmp2


А как это использовать?


MsGuns   (2006-08-09 17:18:00) [6]

Не надо никаких временных таблиц:

Q2.SQL.Text := 'SELECT A.* FROM ('+Q1.SQL.Text+') A '+
  'WHERE <тут что надо> ORDER BY ...'

Есть, правда 2 нюанса:
1. Из Q1 надо вырезать ORDER BY, если есть
2. Если Q1 параметрический, то надо в Q2 пробежаться по параметрам и присвоить им те же значения, что и в Q1


zdm   (2006-08-09 14:48:00) [7]

DataModule1.ADOQuery_tmp:=DataModule1.ADOQuery_tmp2;


Sergey13   (2006-08-09 14:37:00) [8]

> [3] UMU ©   (09.08.06 14:26)

Так в чем трудность то?
1. Создал таблицу (и заполнил ее данными, насколько я понял, типа insert into select)
2. Читаешь вторым запросом эту таблицу, а не запрос.
3. Третьим квериком убиваешь созданную таблицу.

Нормальная реализация кривой постановки про временные таблицы. 8-)


UMU   (2006-08-09 14:30:00) [9]


> SergP ©   (09.08.06 14:21) [2]


Такой вариант использую, но нежелательно, чтобы запросы находились в БД.


UMU   (2006-08-09 14:26:00) [10]

1.Одним запросом не получается

2.На базе ADOQuery1 я создаю таблицу в БД, а потом c помощью ADOQuery2   выбираю нужные данные. Все нормально, но появляется вопрос : как программно удалить эту таблицу?


SergP   (2006-08-09 14:21:00) [11]

> [0] UMU ©   (09.08.06 14:08)
> Использую БД Access, с помощью ADOQuery1 отбираю нужные
> данные.
>
> Подскажите, пожайлуста, как можно сделать ADOQuery2 так,
> чтобы он выбирал записи из ADOQuery1?


Можно например запрос, который у тебя в ADOQuery1, оформить в БД в виде представления...


fishka   (2006-08-09 14:15:00) [12]

1.Написать 1 запрос, чтобы его результат соответствовал задаче.
2.Через временную таблицу (если они есть в БД Access).


Наверх

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