Mam nastepujący kod programu który ma za zadanie sprawdzić które pozycje CheckListBoxa są zaznaczone, a nastepnie dodac je do bazy danych SQL.

 for i:=0 to CheckListBox1.Items.Count-1 do
 begin
     if CheckListBox1.Checked[i] then
      begin
        TSQLDataSet1.Params.Clear;
        TSQLDataSet1.CommandText := 'INSERT INTO produkty (code, id) VALUES(:mte,:ide);';

        TSQLDataSet1.ParamByName('mte').AsString := GroupAll[i];
        TSQLDataSet1.ParamByName('ide').AsString := IntToStr(GroupArray[ListBox1.ItemIndex]);
        try
         DM.InsertData.ExecSQL();
         inc(dodano);
        except
         MessageBox(handle, ' Błąd bazy danych! ', 'Błąd! ', MB_ICONHAND);
        end;
      end;

 end;

Pierwsza pozycja jest dodawana prawidlowo. Nastepnie pojawia sie blad:
Raised exception class EDatabaseError with message "TSQLDataSet1: Parameter 'mte' not found'.

Dlaczego ten parametr nie znajdywany skoro jest on dodawania zawsze w pętli.
Czy ma to jakis związek z uzyciem DM.InsertData.Params.Clear; na początku?