|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Вывод нескольких результатов запроса
Код:
var type_spiska_int:integer; begin type_spisok:=ADODataSet2.FieldValues['number']; ADODataSet3.Active:=False; ADODataSet3.Parameters.ParamByName('kod_pribor').Value:=kod_prib; ADODataSet3.Active:=true; ADODataSet3.First; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('select * from Параметры where kod_type_pribor=:kod_pribor_DS3 and text=:text_DS3 and index=:index_DS3 and type_spiska =:type_spiska_DS3'); while not ADODataSet3.Eof do begin type_spiska_int:=ADODataSet3.FieldByName('type_spiska').AsInteger; if (type_spiska_int and type_spisok)<>0 then Begin ADOQuery1.Parameters.ParamByName('kod_pribor_DS3').Value:=ADODataSet3.FieldValues['kod_type_pribor']; ADOQuery1.Parameters.ParamByName('text_DS3').Value:=ADODataSet3.FieldValues['text']; ADOQuery1.Parameters.ParamByName('index_DS3').Value:=ADODataSet3.FieldValues['index']; ADOQuery1.Parameters.ParamByName('type_spiska_DS3').Value:=ADODataSet3.FieldValues['type_spiska']; End; ADODataSet3.Next; end; ADOQuery1.Active:=True; end; Последний раз редактировалось lmikle, 25.08.2013 в 07:16. |
#2
|
|||
|
|||
Ну все правильно выводится. По другому и не будет, т.к. каждая следующая итерация цикла сбрасывает результат предыдущей.
Тебе надо так построить запрос, что бы он вернул все записи за один вызов. Можно просто сделать JOIN с главной таблицей, а показать только поля присоединенной. А вообще, есть такой тип отображения - Msdter-Detail называется. Там 2 грида, при выборе записи в Master-гриде, а Detail-гриде автоматически выводятся соответвующие записи из вротой таблицы... может этого ты хотел на самом деле? |
#3
|
|||
|
|||
решил пойти другим путем
select type_spiska, kod_type_pribor from Параметры where kod_type_pribor=kp and IF type_spiska & ts=ts then type_spiska=type_spiska else type_spiska=-1 end проблема в конструкции if then else помогите разобраться |