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 ?