Доброе время суток. Столкнулся с такой проблемой.

У меня выборка происходит в цикле,запрос с 4 динамическими параметрами,потому в цикле.

Код:
col:=2;
while Sheet.GetCellObject(col,3).Text <> '' do
    begin
        cgroup:=StrToInt(Sheet.GetCellObject(col,3).Text);
        subj:=Sheet.GetCellObject(col,2).Text;

         with IBQuery2 do
            begin
                Close;
                SQL.Clear;
                SQL.Text:='';

 ParamByName('cgroup').AsInteger:=cgroup;
                ParamByName('subj').AsString:=subj;
                ParamByName('code').AsString:=code;

                Active:=true;
                Open;
            end;

        SetCellText(Sheet,col,4,IBQuery2.FieldByName('allh').AsString);

        col:=col+1;
    end;

Судя по DBGrid IBQuery сохраняет все записи, т.е. все три.. Но в цикле добавляет 3 раза последнюю в таблицу.. Подскажите как этого избежать?

Решение:

Active:=true;
Open;

А зачем дважды открытие вызывать?
Это же аналоги.