Einzelnen Beitrag anzeigen

strom

Registriert seit: 23. Aug 2008
Ort: Keine Ergebnisse gefunden
290 Beiträge
 
#26

AW: Firebird INTEGER = NotNull

  Alt 26. Jan 2015, 17:32
Natürlich habe ich keine Ahnung von Datenbanken in Delphi usw.
sonst wäre ich nicht in diesem Forum oder?

Dank "DeddyH" konnte ich mir mal einen Trigger anschauen. (FlameRobin)

Soll dieser Trigger jetzt von Delphi angesteuert werden?
Oder übernehme ich diesen Quelltext?

Code:
SET TERM ^ ;
ALTER TRIGGER EINSAETZE_BI ACTIVE
BEFORE INSERT POSITION 0
AS
    DECLARE iEinsatznummer INTEGER;
    DECLARE iRecordCount INTEGER;
    DECLARE iEinsatznummerStart INTEGER;
    DECLARE iEinsatznummerMax INTEGER;
BEGIN
    iRecordCount = 0;
    iEinsatznummerStart = extract(year from current_date) * 1000000;
    iEinsatznummerMax = 0;

    SELECT COUNT(*), max(EINSATZNUMMER) FROM EINSAETZE WHERE (EINSATZNUMMER >= :iEinsatznummerStart) INTO :iRecordCount, :iEinsatznummerMax;

    IF (iRecordCount >= 1) THEN iEinsatznummer = iEinsatznummerMax; ELSE iEinsatznummer = iEinsatznummerStart;
    iEinsatznummer = iEinsatznummer + 1;

    IF (NEW.EINSATZNUMMER IS NULL) THEN NEW.EINSATZNUMMER = iEinsatznummer;

END^
SET TERM ; ^

Geändert von strom (26. Jan 2015 um 17:35 Uhr)
  Mit Zitat antworten Zitat