Sorry - wie gesagt ich bin "Lazarus- und Datenbankanfänger" und verstehe Eure Ausführungen nicht wirklich......
Ich kopiere hier mal den ganzen Code der Procedure hinein - vielleicht kommt ihr damit klar  
 
 
procedure TF1ArtGrp.BtSpeichernClick(Sender: TObject);
 var
  Datum : string;
 begin
  //Datum aus EdtAnlage korrekt umwandeln
  Datum := FormatDateTime('YYYY-MM-DD',Date);
  F1LogIn.ConnectDB;
  if neuerSatz
   then begin
         //Prüfen, ob die Gruppennummer über alle Bereiche schon existiert
         strGrpNr:='0';
         F1LogIn.SQLQuery1.SQL.Text:='select * from art_grp where Grp_Loesch=0 order by Grp_Nr';
         F1LogIn.SQLQuery1.open;
         while not (F1LogIn.SQLQuery1.EOF) and (strGrpNr<>EdtGrpNr.Text) do
          begin
           strGrpNr:=F1LogIn.SQLQuery1.FieldByName('Grp_Nr').AsString;
           F1LogIn.SQLQuery1.Next;
          end;
         if strGrpNr=EdtGrpNr.Text
          then begin
                 EdtGrpNr.Text:='';
                 LblMeldgArtGrp.Font.Color:=clred;
                 LblMeldgArtGrp.Caption:='Die gewählte Gruppe existiert bereits';
               end
          else begin
                //Prüfung der Gruppennummer o.k. - neuen Datensatz in Datenbank schreiben
                strGrpBereich:=IntToStr(CBGrpBereich.ItemIndex);
                if EdtGrpBez.Text='' then EdtGrpBez.Text:='n.n.';
                F1LogIn.SQLQuery1.SQL.Text:='insert into art_grp (Grp_Nr,Grp_Bez,Grp_AnzArtikel,Grp_Anlage,Grp_Loesch,Grp_Bereich) values ('''+EdtGrpNr.Text+''','''+EdtGrpBez.Text+''','''+EdtArtikel.Text+''','''+Datum+''',0,'''+strGrpBereich+''');';
                F1LogIn.SQLQuery1.open;
                F1LogIn.CloseDB;
                LblMeldgArtGrp.Font.Color := clgreen;
                LblMeldgArtGrp.Caption:='Die neue Gruppe wurde angelegt';
                //Aktualisierung der ListView
                F1ArtGrp.LVArtGrp.Items.Clear;
                F1LogIn.SQLQuery1.SQL.Text:='select * from art_grp where Grp_Loesch=0 order by Grp_Nr';
                F1LogIn.SQLQuery1.open;
                while not F1LogIn.SQLQuery1.EOF do
                 begin
                  strGrpID:=F1LogIn.SQLQuery1.FieldByName('Grp_ID').AsString;
                  strGrpNr:=F1LogIn.SQLQuery1.FieldByName('Grp_Nr').AsString;
                  strGrpBez:=F1LogIn.SQLQuery1.FieldByName('Grp_Bez').AsString;
                  strGrpAnzArt:=F1LogIn.SQLQuery1.FieldByName('Grp_AnzArtikel').AsString;
                  strGrpAnlage:=F1LogIn.SQLQuery1.FieldByName('Grp_Anlage').AsString;
                  strGrpLoesch:=F1LogIn.SQLQuery1.FieldByName('Grp_Loesch').AsString;
                  strGrpBereich:=F1LogIn.SQLQuery1.FieldByName('Grp_Bereich').AsString;
                  UpDateLV (strGrpID,strGrpNr,strGrpBez,strGrpAnzArt,strGrpAnlage,strGrpBereich);
                  F1LogIn.SQLQuery1.Next;
                 end;
                neuerSatz:=false;
                EdtGrpNr.Text:='';
                EdtGrpBez.Text:='';
                CBGrpBereich.ItemIndex:=-1;
               end;
        end
   else begin
         F1LogIn.SQLQuery1.SQL.Text:='select * from art_grp where Grp_ID='''+strGrpID+''';';
         F1LogIn.SQLQuery1.Open;
         strGrpBereich:=F1LogIn.SQLQuery1.FieldByName('Grp_Bereich').AsString;
         if (strGrpNr=EdtGrpNr.Text) and (strGrpBez=EdtGrpBez.Text) and (CBGrpBereich.ItemIndex=StrToInt(strGrpBereich))
          then begin
                LblMeldgArtGrp.Font.Color:=clred;
                LblMeldgArtGrp.Caption:='Speichern nicht notwendig - es wurden keine Änderungen vorgenommen';
               end
          else begin
                //Es wurden Änderungen an der Grp_Nr und/oder der Grp_Bez und/oder dem Grp_Bereich vorgenommen
                strGrpBereich:=IntToStr(CBGrpBereich.ItemIndex);
                F1LogIn.SQLQuery1.SQL.Text:='update art_grp set Grp_Nr='''+EdtGrpNr.Text+''', Grp_Bez='''+EdtGrpBez.Text+''', Grp_Bereich='''+strGrpBereich+''' where Grp_ID='''+strGrpID+''';';
                F1LogIn.SQLQuery1.open;
                //ListView aktualisieren #23
                if F1ArtGrp.LVArtGrp.Selected <> nil
                 then begin
                       F1ArtGrp.LVArtGrp.Selected.Caption;
                       F1ArtGrp.LVArtGrp.Selected.SubItems[0]:=EdtGrpNr.Text;
                       F1ArtGrp.LVArtGrp.Selected.SubItems[1]:=EdtGrpBez.Text;
                       F1ArtGrp.LVArtGrp.Selected.SubItems[4]:=strGrpBereich;
                      end
                 else begin
                       F1ArtGrp.LVArtGrp.Selected.Caption;
                       F1ArtGrp.LVArtGrp.Selected.SubItems[0]:=EdtGrpNr.Text;
                       F1ArtGrp.LVArtGrp.Selected.SubItems[1]:=EdtGrpBez.Text;
                       F1ArtGrp.LVArtGrp.Selected.SubItems[4]:=strGrpBereich;
                      end;
                LblMeldgArtGrp.Font.Color:=clgreen;
                LblMeldgArtGrp.Caption:='Der Datensatz wurde aktualisiert';
                EdtGrpNr.Text:='';
                EdtGrpBez.Text:='';
                CBGrpBereich.ItemIndex:=-1;
               end;
        end;
  F1LogIn.CloseDB;
 end;