AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Anzahl Datensätze einer Tabelle beschränken
Thema durchsuchen
Ansicht
Themen-Optionen

Anzahl Datensätze einer Tabelle beschränken

Ein Thema von Jens Hartmann · begonnen am 7. Okt 2009 · letzter Beitrag vom 15. Okt 2009
Antwort Antwort
Seite 1 von 3  1 23      
Benutzerbild von Jens Hartmann
Jens Hartmann

Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
 
Delphi XE2 Professional
 
#1

Anzahl Datensätze einer Tabelle beschränken

  Alt 7. Okt 2009, 19:31
Datenbank: Firebird • Version: V2.1 • Zugriff über: ZEOS
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
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Anzahl Datensätze einer Tabelle beschränken

  Alt 7. Okt 2009, 19:56
Man könnte versuchen, dies im After-Insert-Trigger zu bewerkstelligen
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Jens Hartmann
Jens Hartmann

Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
 
Delphi XE2 Professional
 
#3

Re: Anzahl Datensätze einer Tabelle beschränken

  Alt 7. Okt 2009, 20:40
Alles klar,

danke werde ich mal versuchen.

Gruß Jens
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#4

Re: Anzahl Datensätze einer Tabelle beschränken

  Alt 7. Okt 2009, 21:01
Ich wollte auch mal sowas machen, allerdings mit MySQL. Hier ist der Thread
Mit Events ist es aber natürlich eleganter.
  Mit Zitat antworten Zitat
Hansa

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

Re: Anzahl Datensätze einer Tabelle beschränken

  Alt 7. Okt 2009, 21:10
Trigger ? Immer dieses DB-Gefummele.

Delphi-Quellcode:
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;
Schönes Beispiel wofür die ganzen Dataset-Methoden da sind.

P.S.: elegant ist eher, die DB in Ruhe zu lassen und die dafür gedachten Methoden auch zu benutzen.
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#6

Re: Anzahl Datensätze einer Tabelle beschränken

  Alt 7. Okt 2009, 21:19
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.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#7

Re: Anzahl Datensätze einer Tabelle beschränken

  Alt 7. Okt 2009, 21:29
Zitat von Hansa:
P.S.: elegant ist eher, die DB in Ruhe zu lassen und die dafür gedachten Methoden auch zu benutzen.
Ich finde es eleganter, so viel wie möglich von der DB selbst regeln zu lassen.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Anzahl Datensätze einer Tabelle beschränken

  Alt 7. Okt 2009, 21:33
Zitat:
Ich finde es eleganter, so viel wie möglich von der DB selbst regeln zu lassen.
Ich auch. Deshalb habe ich auch einen Trigger vorgeschlagen
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Jens Hartmann
Jens Hartmann

Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
 
Delphi XE2 Professional
 
#9

Re: Anzahl Datensätze einer Tabelle beschränken

  Alt 7. Okt 2009, 22:31
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
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Anzahl Datensätze einer Tabelle beschränken

  Alt 7. Okt 2009, 22:35
Zudem würde das auch unabhängig vom Programm funktionieren
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:01 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz