SQL:=ZQuery3;
   i:=StringGrid1.RowCount-1;
   for z:=1 to i do begin
       SQL.Open;
       SQL.ParamByName('lp').AsInteger:=StrToInt(StringGrid1.Cells[0,z]);
       SQL.ParamByName('nazwa').AsString:=StringGrid1.Cells[1,z];
       SQL.ParamByName('PKWiU').AsString:=StringGrid1.Cells[2,z];
       SQL.ParamByName('jm').AsString:=StringGrid1.Cells[3,z];
       SQL.ParamByName('ilosc').AsFloat:=StrToFloat(StringGrid1.Cells[4,z]);
       SQL.ParamByName('netto').AsFloat:=StrToFloat(StringGrid1.Cells[5,z]);
       SQL.ParamByName('wartoscnetto').AsFloat:=StrToFloat(StringGrid1.Cells[6,z]);
       SQL.ParamByName('vat').AsString:=StringGrid1.Cells[7,z];
       SQL.ParamByName('kwotavat').AsString:=StringGrid1.Cells[8,z];
       SQL.ParamByName('brutto').AsFloat:=StrToFloat(StringGrid1.Cells[9,z]);
       SQL.ParamByName('nrfaktury').AsString:=Edit8.Text;
       SQL.ExecSQL;
       SQL.Next;
   end;

Mam taki kod. W bazie danych mam ustawiony parametr dla kolumny "lp" NOT NULL. Gdy próbuję wykonać kod, mimo że w StrinGridzie w pozycji 0,1 jest liczba, otrzymuje komunikat że columna lp nie może być pusta.

DObra już wiem co było nie tak:P Problem powodowała jedna linijka

SQL.Next;

Wystarczyło ją usunąć i wszystko jest ok:P