AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Trigger

Ein Thema von Walter Landwehr · begonnen am 19. Jan 2025 · letzter Beitrag vom 20. Jan 2025
Antwort Antwort
Walter Landwehr

Registriert seit: 28. Mär 2006
Ort: 32816 Schieder-Schwalenberg
405 Beiträge
 
Delphi 10.4 Sydney
 
#1

Trigger

  Alt 19. Jan 2025, 10:21
Datenbank: Firebird • Version: 2.0 • Zugriff über: IBO
Hallo ich habe folgenden Code im Trigger:
Delphi-Quellcode:
  if (new.geburtsdatum > '') then
    begin
       new.geburtstag = extract(day from new.geburtsdatum);
       new.geburtsmonat_zahl = extract(Month from new.geburtsdatum);
       if new.geburtsmonat_zahl = 1 then
         if new.geburtsmonat = 'Januar';

    end
Bei if new.geburtsmonat_zahl = 1 then kommte ein Parsing error. Was ist hier falsch?
Walter Landwehr
Mfg

Walter
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.656 Beiträge
 
Delphi 12 Athens
 
#2

AW: Trigger

  Alt 19. Jan 2025, 10:28
Sicher, dass nicht stattdessen das sinnlose „if“ in der nachfolgenden Zeile moniert wird?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
hes

Registriert seit: 21. Apr 2024
Ort: Baden Württemberg
19 Beiträge
 
Delphi 12 Athens
 
#3

AW: Trigger

  Alt 19. Jan 2025, 10:34
Hab mit Firebird noch nie was gemacht, aber ist es nicht wie z.b. in C, dass du == machen musst?
Rainer
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.656 Beiträge
 
Delphi 12 Athens
 
#4

AW: Trigger

  Alt 19. Jan 2025, 10:37
Auf jeden Fall kann es auch nicht schaden, den Ausdruck zu klammern
Code:
if (…) then
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Walter Landwehr

Registriert seit: 28. Mär 2006
Ort: 32816 Schieder-Schwalenberg
405 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Trigger

  Alt 19. Jan 2025, 11:59
Danke

So funktioniert es:
Delphi-Quellcode:
  if (new.geburtsdatum > '') then
    begin
       new.geburtstag = extract(day from new.geburtsdatum);
       new.geburtsmonat_zahl = extract(Month from new.geburtsdatum);
       if (new.geburtsmonat_zahl = 1) then
         new.geburtsmonat = 'Januar';

    end
Walter Landwehr
Mfg

Walter
  Mit Zitat antworten Zitat
Walter Landwehr

Registriert seit: 28. Mär 2006
Ort: 32816 Schieder-Schwalenberg
405 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Trigger

  Alt 19. Jan 2025, 13:24
Leider immer noch ein Problem. Hier mal der Ganze Trigger.
Delphi-Quellcode:
as
    declare variable Monat Integer;
    declare variable Tag Integer;
begin
  if (new.ZAHLUNGSPFLICHTIG = 'J') then
    if (((new.ZAHLUNGSART is null) or (new.ZAHLUNGSART = '')) or ((new.ZAHLUNGSZEITPUNKT) is null or (new.ZAHLUNGSZEITPUNKT = ''))) then
        exception EXCP_INVALID;

    if (new.geburtsdatum > '') then
    begin
       Tag = extract(day from new.geburtsdatum);
       Monat = extract(Month from new.geburtsdatum);

       if (Monat = 1) then
         New.geburtsmonat = 'Januar';
       if (Monat = 2) then
         new.geburtsmonat = 'Februar';
       if (Monat = 3) then
         new.geburtsmonat = 'März';
       if (Monat = 4) then
         new.geburtsmonat = 'Aprol';
       if (Monat = 5) then
         new.geburtsmonat = 'Mai';
       if (Monat = 6) then
         new.geburtsmonat = 'Juni';
       if (Monat = 7) then
         new.geburtsmonat = 'Juli';
       if (Monat = 8) then
         new.geburtsmonat = 'August';
       if (Monat = 9) then
         new.geburtsmonat = 'September';
       if (Monat =10) then
         new.geburtsmonat = 'Oktober';
       if (Monat = 11) then
         new.geburtsmonat = 'November';
       if (Monat = 12) then
         new.geburtsmonat = 'Dezember';
       Old.geburtstag = Tag;
       Old.geburtsmonat_zahl = Monat;
    end
end
Der Trigger lässt sich nicht kompilieren. Keine Ahnung warum. Vielleicht sieht jemand den Fehler.
Walter Landwehr
Mfg

Walter
  Mit Zitat antworten Zitat
Benutzerbild von joachimd
joachimd

Registriert seit: 17. Feb 2005
Ort: Weitingen
684 Beiträge
 
Delphi 12 Athens
 
#7

AW: Trigger

  Alt 19. Jan 2025, 13:37
ist das richtig so, dass Du old ändern willst? Steht das überhaupt schreibbar zur Verfügung?
Joachim Dürr
Joachim Dürr Softwareengineering
http://www.jd-engineering.de
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:21 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz