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

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

как открыть Query12 - Query31 [D7, XP]


Кирей ©   (2006-08-03 10:30:00) 

Как открыть в цикле запросы Query12-31
типа:
for i:=12 to 31 do
begin
Query(i).open;
end;


Desdechado   (2006-08-03 14:00:00) [1]

Отчеты удобно делать хранимыми процедурами.


Sergey13   (2006-08-03 13:15:00) [2]

> [12] Кирей   (03.08.06 12:21)

"не выходит" и "не получается" не значит нельзя. Я не утверждаю, что можно, из твоего "описания" задачи это непонятно.


StriderMan   (2006-08-03 13:04:00) [3]

а параметры запроса не помогут?

и как ты все результаты запросов поместишь в один ДБгрид?


Кирей   (2006-08-03 12:21:00) [4]


> А меня мучают подозрения, что автор просто не умеет получить
> несколько значений одним запросом (например через IN).

Не тот случай, одним запросом не выходит, нужная выборка не получается ни с помощью вложенных запросов, ни группировкой.
Мне нужно было выбрать и поместить в дбгрид:
-----------------------------------------------------------------------------
диаметр | всего м.| низкого давления| высокого давления| и т.д
-----------------------------------------------------------------------------
25
30
...
Все это выбирается из одной таблицы, в которой поля:
Диаметр
Длинна
Давление(просто указывается давление, а запросы уже выбирают низкое, высокое)
...(в остальных полях тоже ставится только значение, а в результирующий запрос заносится результат выборки по определенным условям)


Sergey13   (2006-08-03 11:26:00) [5]

> [8] Desdechado ©   (03.08.06 11:17)

А меня мучают подозрения, что автор просто не умеет получить несколько значений одним запросом (например через IN).


Ega23   (2006-08-03 11:23:00) [6]


> А меня мучает вопрос - что можно делать с таким количеством
> запросов одновременно?


Ну, например, для LookupCombo - фильтрация основного. Где-то у меня такое было, когда параметров основной выборки просто дофигищща.
Другое дело, что именовать Query12-Query31 как-то не по-людски...


Palladin   (2006-08-03 11:20:00) [7]

:) Ну например обратно закрыть.


Desdechado   (2006-08-03 11:17:00) [8]

А меня мучает вопрос - что можно делать с таким количеством запросов одновременно?


Palladin   (2006-08-03 11:16:00) [9]

Зачем? Завести массив и в OnCreate формы заполнить его нужными Query будет вполне достаточно.


Ega23   (2006-08-03 11:14:00) [10]

Кстати, можно у Query12-Query31 выставить Tag одинаковый, и потом по нему искать.


Sergey13   (2006-08-03 11:09:00) [11]

> [0] Кирей   (03.08.06 10:30)

Такой подход часто говорит о непродуманности проекта.


Кирей   (2006-08-03 10:48:00) [12]

Круто, не ожидал, всем спасибо


Palladin   (2006-08-03 10:46:00) [13]

Var
c:TQuery;

For i:=12 to 31 Do
Begin
 c:=FindComponent('Query'+IntToStr(i));
 If c<>Nil Then c.Open;
End;


Ega23   (2006-08-03 10:46:00) [14]

var
i, cnt:Integer;
begin
 cnt:=12;
 While (cnt<=31) do
   begin
     for i:=0 to ComponentCount-1 do
       if (Components[i] is TQuery) then
         if ANSIUpperCase(TQuery(Components[i]).Name)='QUERY'+IntToStr(cnt) then
           begin
             TQuery(Components[i]).Open;
             Break;
           end;
     Inc(cnt);
   end;
end;


Stakan   (2006-08-03 10:45:00) [15]

procedure TForm1.Button1Click(Sender: TObject);
var
 i: Integer;
begin
 for i := 12 to 31 do
 begin
   with TQuery(FindComponent('Query' + IntToStr(i)) do
   begin
     if Active then
       Close;
     Open;
   end;
 end;
end;


Наверх

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