Einzelnen Beitrag anzeigen

rudi_

Registriert seit: 10. Okt 2004
Ort: Neuss
34 Beiträge
 
Delphi 7 Professional
 
#10

Re: TListBox zugriffs Problem

  Alt 16. Okt 2004, 17:13
Delphi-Quellcode:
procedure TClerkBox.BeforeDestruction;
begin
if FChanged then
begin
  if FDataSetID <> -1 then
    UpdateEntry
  else
    InsertEntry;
end;
  inherited BeforeDestruction;
end;


procedure TClerkBox.UpdateEntry;
begin
if FChanged then
begin
  FMySQL.Query('UPDATE staff SET name='''+txt_clerkname.Text+''' WHERE id='+inttostr(FDataSetID));
  if FMysql.LastErrorNo <> 0 then
    showmessage(FMySQL.LastErrorMsg);
  FMySQL.FreeResult(FMySQL.LastResultID);
  FChanged := false;
  Caption := 'Information:';
  LoadClerks;
end;
end;

procedure TClerkBox.InsertEntry;
begin
if FChanged then
begin
  FMySQL.Query('INSERT INTO staff (name) VALUES('''+txt_clerkname.text+''')');
  if FMysql.LastErrorNo <> 0 then
    showmessage(FMySQL.LastErrorMsg);
  FMySQL.FreeResult(FMySQL.LastResultID);
  FChanged := false;
  Caption := 'Information:';
  LoadClerks;
end;
end;
zur erklärung der BeforeDestruction methode:
FChanged wird dann auf true gesetzt, wenn jemand den inhalt des textfeldes geändert hat (um nicht unnötig jedesmal einen eintrag zu updaten, der sich gar nicht geändert hat).
FDataSetID speichert den primärschlüssel, um auch den richtigen datensatz in der db zu erwischen
ist FDataSetID = -1, wird angenommen, dass das ganze als neuer Datensatz gespeichert werden soll
Wie Sie sehn,
sehn Sie nichts.
  Mit Zitat antworten Zitat