Einzelnen Beitrag anzeigen

Benutzerbild von dataspider
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.351 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: StartDate,EndDate, Überlappung verhindern

  Alt 10. Okt 2007, 11:27
Zitat von hoika:
Hallo,

hm, und wie würde der aussehen ?
Sorry, aber ich ärgere mih damit schon seit langem rum,
immer wieder kommen Fehler, also dass wieder eine Überlappung auftritt. ;(



Heiko
Nehmen wir an, die Tabelle heisst Buchung:

1. Exception:

CREATE EXCEPTION E_INVALIDDATERANGE ''; 2. Trigger:

SQL-Code:
CREATE TRIGGER BUCHUNG_BIU0 FOR BUCHUNG
ACTIVE BEFORE INSERT OR UPDATE POSITION 0
as
declare variable ueberlappung char(1);
begin
  /*
    Datumsbereich prüfen
  */

  select
    case
      when
        exists(select * from buchung
               where (new.startdate between startdate and enddate) or
                     (new.enddate between startdate and enddate)) then
        'T'
      else
        'F'
    end
    from rdb$database into :ueberlappung;
  if (:ueberlappung = 'T') then
    exception e_invaliddaterange 'Überlappender Datumsbereich';

end
[EDIT]Die beiden Datumsfelder sollten dabei indexiert sein![/EDIT]

Cu, Frank
Frank Reim
  Mit Zitat antworten Zitat