![]() |
Datenbank: Firebird • Version: V2.1 • Zugriff über: ZEOS
Anzahl Datensätze einer Tabelle beschränken
Hallo,
hab mal eine Frage zum beschränken von Datensätzen einer Tabelle. Ich habe vor über die Anzahl der Datensätze, die ich in eine Tabelle schreiben kann, einen Ringspeicher zu erstellen, um das Datenaufkommen zu minimieren. Soll heißen, ich möchte die Anzahl der Datensätze einer Tabelle auf 500000 beschränken. Die Tabelle soll aber nicht voll werden, sondern nach dem 500000 Datensatz soll der älteste Überschrieben werden. (Ringspeicher). Muss ich diese Funktion mit INSERT und DELETE selber schreiben, oder kann ich das mit Firebird automatisch realisieren. Danke schon mal Gruß Jens |
Re: Anzahl Datensätze einer Tabelle beschränken
Man könnte versuchen, dies im After-Insert-Trigger zu bewerkstelligen
|
Re: Anzahl Datensätze einer Tabelle beschränken
Alles klar,
danke werde ich mal versuchen. Gruß Jens |
Re: Anzahl Datensätze einer Tabelle beschränken
Ich wollte auch mal sowas machen, allerdings mit MySQL.
![]() Mit Events ist es aber natürlich eleganter. |
Re: Anzahl Datensätze einer Tabelle beschränken
Trigger ? :shock: Immer dieses DB-Gefummele. :mrgreen:
Delphi-Quellcode:
Schönes Beispiel wofür die ganzen Dataset-Methoden da sind. :zwinker:
procedure TForm1.btn1Click(Sender: TObject);
var Anz : Integer; begin DS1.Close; DS1.SelectSQL.Text := 'SELECT COUNT (*) AS ANZ FROM TESTTABLE'; DS1.Open; // ^^ momentane Anzahl ermitteln Anz := DS1.FieldByName ('ANZ').AsInteger; lbl1.Caption := IntToStr(Anz); if Anz > 3 then begin DS1.Close; DS1.SelectSQL.Text := 'SELECT * FROM TESTTABLE'; // alle lesen DS1.Open; DS1.First; DS1.Delete; // ältesten DS löschen DS1.Last; DS1.Insert; // hinter neuestem DS komplett neuen einfügen DS1.FieldByName('CITYNO').AsInteger := Anz; DS1.Post; Transaction1.Commit; DB1.Close; Close; // Form schliessen end; end; P.S.: elegant ist eher, die DB in Ruhe zu lassen und die dafür gedachten Methoden auch zu benutzen. |
Re: Anzahl Datensätze einer Tabelle beschränken
Woher willst Du bei Deiner Methode denn wissen, dass Du den ältesten DS erwischst? Und wieso fragst Du alle ab? Ich verstehe die Logik dahinter nicht, ehrlich gesagt.
|
Re: Anzahl Datensätze einer Tabelle beschränken
Zitat:
|
Re: Anzahl Datensätze einer Tabelle beschränken
Zitat:
|
Re: Anzahl Datensätze einer Tabelle beschränken
Also ich denke das ich es auch mit einem Trigger versuchen werde.
Ich sehe allein den Vorteil darin, das ich jederzeit den Trigger der Datenbank anpassen kann, ohne mein Programm anpacken zu müssen. Gruß Jens |
Re: Anzahl Datensätze einer Tabelle beschränken
Zudem würde das auch unabhängig vom Programm funktionieren
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:17 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz