Einzelnen Beitrag anzeigen

Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#11

Re: Anzahl Datensätze einer Tabelle beschränken

  Alt 8. Okt 2009, 12:52
Zitat von DeddyH:
Woher willst Du bei Deiner Methode denn wissen, dass Du den ältesten DS erwischst?
Über die ID bzw. den primary key. Wie denn sonst ?

Nächster Vorschlag :

Delphi-Quellcode:
procedure TForm1.btn1Click(Sender: TObject);
var Anz : Integer;
    MinID,
    MaxID : Integer;
begin
  DS1.Close;
  DS1.SelectSQL.Text := 'SELECT MIN (ID) AS IDMIN FROM TESTTABLE';
  DS1.Open; // ^^ momentane Anzahl ermitteln
  MinID := DS1.FieldByName ('IDMIN').AsInteger;
  DS1.Close;
  DS1.SelectSQL.Text := 'SELECT MAX (ID) AS IDMAX FROM TESTTABLE';
  DS1.Open;
  MaxID := DS1.FieldByName ('IDMAX').AsInteger;
  if MaxID > 3 then begin
    DS1.Close;
    DS1.SelectSQL.Text := 'DELETE FROM TESTTABLE WHERE ID ='+IntToStr (MinID);
    DS1.Open;
    DS1.Close;
    DS1.SelectSQL.Text := 'SELECT * FROM TESTTABLE WHERE ID ='+IntToStr (MaxID);
    DS1.Open;
    DS1.Insert;
    DS1.FieldByName('CITYNO').AsInteger := MaxID + 1;
    DS1.Post;
    Transaction1.Commit;
    DB1.Close;
    Close; // Form schliessen
  end;
end;
Wo bleibt denn eigentlich der Trigger ?

Zitat von mkinzler:
Zudem würde das auch unabhängig vom Programm funktionieren
Aber es betrifft immer noch die DB. Die stellt das Kernstück dar. Nicht das Programm ! Die EXE kann man wohl auch schnell mal im laufenden Betrieb austauschen. Aber die DB mal kurz umbauen ?
Gruß
Hansa
  Mit Zitat antworten Zitat