AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Maximale Anzahl Records im Table
Thema durchsuchen
Ansicht
Themen-Optionen

Maximale Anzahl Records im Table

Ein Thema von Werwurm · begonnen am 9. Jul 2007 · letzter Beitrag vom 9. Jul 2007
Antwort Antwort
Werwurm

Registriert seit: 21. Apr 2003
Ort: Bremen
71 Beiträge
 
Delphi 2009 Professional
 
#1

Maximale Anzahl Records im Table

  Alt 9. Jul 2007, 22:19
Datenbank: Interbase • Version: 6.5 • Zugriff über: Delphi IB-Komponenten
Hallo an alle,

ich habe vor längerer Zeit eine Lagerverwaltung geschrieben.
In der zugehörigen DB befindet sich auch ein Table in dem die getätigten Aktionen protokolliert werden.
Diese können mir im Fehlerfall als Mail (natürlich mit Zustimmung des User) zugesendet werden.

Nun habe ich festgestellt, dass dieser Table eine beachtliche erreicht hat.
Ich habe einen Tracelevel implementiert, über den die Anzahl der Einträge gesteuert wird. Jedoch wird das Programm stärker genuzt als ursprünglich geplant .

Nun meine Frage:
Gibt es in Interbase eine Möglichkeit die Recordanzahl aus z.B. 10000 zu begrenzen.
Ich stelle mir das so vor, das immer die ältesten Records gelöscht werden, um die Tablegröße beizubehalten.

Mein erster Versuch dieses in einem Trigger zu lösen, habe ich schnell wieder verworfen.
Zwar kann ich die Anzahl der Records auslesen, doch wie lösche ich die ältesten?

Ich bin für jede Hilfe dankbar, denn die Suche hier im Forum und unter Google brachte leider nicht den gewünschten Erfolg.
Gruß
Marcus
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Maximale Anzahl Records im Table

  Alt 9. Jul 2007, 22:22
In dem du die Tabelle nach einem Timestamp sortieren lässt.
Markus Kinzler
  Mit Zitat antworten Zitat
Werwurm

Registriert seit: 21. Apr 2003
Ort: Bremen
71 Beiträge
 
Delphi 2009 Professional
 
#3

Re: Maximale Anzahl Records im Table

  Alt 9. Jul 2007, 22:26
Hallo mkinzler,

Danke für dei schnelle Antwort.
Die Tabelle ist nach dem Timestamp sortiert.
Doch wie kann ich Records deleten, ohne zu wissen welche TimeStamps ich löschen will?
Gruß
Marcus
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Maximale Anzahl Records im Table

  Alt 9. Jul 2007, 22:30
Einfach per Trigger überprüfen ob maximale Anzahl erreicht ist und dann den kleinsten löschen.
Markus Kinzler
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: Maximale Anzahl Records im Table

  Alt 9. Jul 2007, 22:39
Hm,

ich würde nicht löschen,
sondern in eine 2. DB verschieben.

(so als "wer war mal drin ?")


Heiko
Heiko
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Maximale Anzahl Records im Table

  Alt 9. Jul 2007, 22:43
Um was für Anzahl von Datensätze Reden wir hier eigentlich?
Markus Kinzler
  Mit Zitat antworten Zitat
Werwurm

Registriert seit: 21. Apr 2003
Ort: Bremen
71 Beiträge
 
Delphi 2009 Professional
 
#7

Re: Maximale Anzahl Records im Table

  Alt 9. Jul 2007, 23:02
Manchmal siehtr man den Wald vor lauter Bäumen nicht.
Habe nicht an die Min Funktion gedacht.
Habe es aber nicht mittels Trigger gelöst sondern in der SP die ich zum füllen der Tabelle nutze.

SQL-Code:
  SELECT COUNT(PC) FROM "T_LOG" INTO :ANZAHL;
  IF (:ANZAHL>50000) THEN BEGIN
    SELECT MIN(zeit) FROM "T_LOG" INTO :ZEIT;
    DELETE FROM "T_LOG" WHERE zeit=:ZEIT;
  END
Mit diesem Ansatz klappt das wunderbar.

In dem bisherigen LOG schlummern über 900000 Records.
Diese belasten zwar nicht massivdie DB, jedoch brauche ich nicht alles vorhalten. Und beim versenden des Log's lese ich mir keinen Wolf.
Deshalb habe ich jetzt die Grenze bei 50000 Records gesetzt. Dann passt es auch noch in Excel. Ich denke das sollte im überschaubaren Rahmen bleiben.

Vielen Dank für die schnelle Hilfe.
Gruß
Marcus
  Mit Zitat antworten Zitat
Antwort Antwort


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 08:20 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