Hier würde es sich anbieten den Zeitraum zwischen der letzten Abfrage und Jetzt zu untersuchen.
Delphi-Quellcode:
type
TForm1 = class( TForm )
...
private
FLastCall : TDateTime;
...
end;
procedure TForm1.CheckTimer;
var
LNow : TDateTime;
begin
// Abfragezeitpunkt merken
LNow := Now;
// Abfrage vorbereiten
Qry.SQL.Text := 'SELECT * FROM TimerEvents WHERE AlarmTime > :CallThen AND AlarmTime <= :CallNow';
Qry.ParamByName('CallThen').Value := FLastCall;
Qry.ParamByName('CallNow').Value := LNow;
Qry.Open;
try
// Jetzt alle Datensätze bearbeiten
while not Qry.EOF do
begin
// Irgendwas mit machen
Qry.Next;
end;
finally
Qry.Close;
end;
// Letzten Abfragezeitpunkt merken
FLastCall := LNow;
end;
Abhängig davon, wie das Programm arbeiten soll, kann man sich den letzten Abfragezeitpunkt extern merken oder man setzt den Abfragezeitpunkt beim Anwendungsstart auf die aktuelle Uhrzeit (weil das Programm immer nur dann verantwortlich ist, wenn es läuft)
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)