Letze Änderung an Tabelle

Advantage Database Server

Moderator: Moderatoren

Antworten
Dominik Krebs
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 197
Registriert: Mo, 15. Apr 2019 16:19
Hat sich bedankt: 10 Mal
Danksagung erhalten: 4 Mal

Letze Änderung an Tabelle

Beitrag von Dominik Krebs »

Hallo zusammen,
mich würde interessieren wie Ihr den Zeitpunkt der letzten Änderung einer bestimmten Tabelle erhaltet.
Aktuell mache ich es über den Lokalen Zugriff auf die .adt Datei und hohle mir dort den Zeitpunkt der letzten Änderung.
Dies ist aber leider nicht so zuverlässig, da wenn viele User auf die Tabelle zugreifen dies nicht immer direkt aktualisiert wird.

In der Advantage Beschreibung konnte ich leider keine passende Funktion finden.
Gruß Dominik
Benutzeravatar
nightcrawler
1000 working lines a day
1000 working lines a day
Beiträge: 650
Registriert: Di, 24. Apr 2012 16:33
Wohnort: 72184 Weitingen
Hat sich bedankt: 3 Mal
Danksagung erhalten: 96 Mal
Kontaktdaten:

Re: Letze Änderung an Tabelle

Beitrag von nightcrawler »

Die einzig sichere Methode ist die Verwendung eines Feldes vom Typ 'ModTime'. Das Datei-Datum wird nicht immer richtig aktualisiert.
--
Joachim
Joachim Dürr Softwareengineering
https://www.jd-engineering.de
Dominik Krebs
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 197
Registriert: Mo, 15. Apr 2019 16:19
Hat sich bedankt: 10 Mal
Danksagung erhalten: 4 Mal

Re: Letze Änderung an Tabelle

Beitrag von Dominik Krebs »

Vielen Dank für die Antwort.
Mhh, diese Lösung gefällt mir eigentlich ganz und gar nicht.
Es wird in einem Thread geprüft, ob sich eine Tabelle aktualisiert hat. Falls ja wird darauf eine HTML Datei erstellt.+
Nun müsste ich jedes mal wenn ich es prüfen möchte, die Tabelle öffnen. Gibt es denn keinen Anderen weg?
Gruß Dominik
Benutzeravatar
nightcrawler
1000 working lines a day
1000 working lines a day
Beiträge: 650
Registriert: Di, 24. Apr 2012 16:33
Wohnort: 72184 Weitingen
Hat sich bedankt: 3 Mal
Danksagung erhalten: 96 Mal
Kontaktdaten:

Re: Letze Änderung an Tabelle

Beitrag von nightcrawler »

Du könntest über Trigger eine Tabelle mit den Daten befüllen und dann nur diese offen halten.

Code: Alles auswählen

create trigger trig_ins on mytable after insert
begin
  merge Logtable on (tabellenname='mytable')
    when matched then update set lastupdate=now()
    when not matched then insert (tabellenname, lastupdate) values('mytable',now();
end;
Das ganze auch für update und delete.

Dateidatum ist bei einem Datenbankserver eine gaaaaaanz schlechte Methode, weil Cache usw.
Oder Du suchst mal nach dem Stichwort Notification: Im Trigger feuert jede Tabelle eine Nachricht, dass sie aktualisiert wurde. Dein Programm lauscht auf diese Nachricht und macht dann was.
--
Joachim
Joachim Dürr Softwareengineering
https://www.jd-engineering.de
Dominik Krebs
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 197
Registriert: Mo, 15. Apr 2019 16:19
Hat sich bedankt: 10 Mal
Danksagung erhalten: 4 Mal

Re: Letze Änderung an Tabelle

Beitrag von Dominik Krebs »

Okay,
Vielen Dank erstmal.

Mit triggern habe ich bis jetzt noch gar nicht gearbeitet.
Hatte aber sowieso vor, mir das anzuschauen.
Jetzt ist wohl der richtige Zeitpunkt dafür 😁
Gruß Dominik
Antworten