![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вывод сведений из запроса в компонент StringGrid [D5, dBase, FoxPro, Paradox]
Сергей © (2008-06-05 21:10:00)Доброго времени суток уважаемые мастера! У меня вопрос следующего характера.
Имеются две таблицы. В одной хранятся данные по регионам и по организациям, а в другой данные о хозяйственных операциях которые проводились данными организациями. Нужно сформировать вывод данных таким образом, чтобы сведения вытаскивались из этих взаимосвязаных таблиц в развернутом виде. То есть:
Регион 1
- Организация 1
- Организация 2
- ...
Регион 2
- ..
При этом я использую следующий код:
with find_sql1 do
begin
find_sql1.Close;
find_sql1.SQL.Clear;
find_sql1.SQL.Add('Select * from reghoz'+
' where NOD0 = 1 and NOD1 <> 0 and NOD2 = 0'+
' ORDER BY NOD1');
find_sql1.Open;
find_sql1.First;
a := find_sql1.FieldByName('NOD1').AsInteger;
end;
while not find_sql1.Eof do
for b := 1 to find_sql1.RecordCount + 1 do
begin
rep_dlg.rep_tipil_tsg.Cells[1,b] := find_sql1.FieldByName('NAME').AsString;
find_sql2.Close;
find_sql2.SQL.Clear;
find_sql2.SQL.Add('Select * from reghoz, isp_lst'+
' where reghoz.NOD1 = '''+IntToStr(a)+''' and reghoz.NOD2 = isp_lst.id_hoz'+
' ORDER BY reghoz.NOD1, reghoz.NOD2');
find_sql2.Open;
find_sql2.First;
while not find_sql2.Eof do
for d := 1 to find_sql2.RecordCount do
begin
rep_dlg.rep_tipil_tsg.Cells[1,d+1] := find_sql2.FieldByName('NAME').AsString;
find_sql2.Next;
end;
find_sql1.Next;
Но в результате происходит вывод только сведений первого региона. Остальные регионы не вытаскиваются:
Регион 1
- Организация 1
- Организация 2
- ...
Сергей М. (2008-06-05 21:55:00) [41]
> while not find_sql1.Eof do
> for b := 1 to find_sql1.RecordCount + 1 do
Что это за безобразие ?
Правильный_Вася (2008-06-05 21:29:00) [42]сделай запрос, чтоб возвращал нужные регионы