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;