![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
как открыть 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;