Zitat von
Salomon:
Für eine Zeiterfassung die "realtime" arbeitet solltet man es so machen wie du schreibst. In meinem Fall könnte jedoch ein User probieren einen Zeitraum doppelt zu belegen.
Wenn dem so ist, würde ich das auf jeden Fall von der Datenbank selbst blockieren lassen, wenn da unsinniges Zeug eingetragen wird, denn nur so kannst du sicher sein, dass nicht doch irgendwas eingetragen wird, was nicht soll. Ich würde einen Trigger auf die Tabelle setzen (sowohl ein Update als Insert Trigger), und im Trigger ein Rollback und ein RAISERROR machen (bei
MSSQL), wenn sich Zeiten überschneiden. Rollback bricht den Insert oder Update ab, und das RAISERROR löst eine
Exception im Delphi Client aus, die du schön sauber abfangen kannst.