Datenbank: "Create Trigger"



  • Hallo,

    wie kann ich mit den DB-Componenten des C-Builders einen Trigger erzeugen ?
    Folgender Code erzeugt den Trigger für eine ORACLE Datenbank, wenn ich ihn im SQL-Plus laufen lasse.

    --  BEFORE INSERT TRIGGER "TIB_IT_CATERING_ARTICLE" FOR TABLE "IT_CATERING_ARTICLE"
    CREATE OR REPLACE TRIGGER TIB_IT_CATERING_ARTICLE BEFORE INSERT
    ON IT_CATERING_ARTICLE FOR EACH ROW
    BEGIN
      IF :NEW.ARTICLE_ID IS NULL OR :NEW.ARTICLE_ID < 1 THEN
        SELECT SEQ_IT_SYS_UNI_NO.NEXTVAL INTO :NEW.ARTICLE_ID FROM DUAL;
      END IF;
    END;
    /
    

    In einer TQuery funktioniert das so nicht.
    Liegt das an einer falschen Syntax oder funktionier das generell nicht ?

    Danke für eure Antworten
    Mikel



  • Hallo,
    fall's es jemanden interessiert, die Lösung ist folgende:

    (f)GENERAL
    Delphi uses colons to specify parameters in sql passthrough string (Tqueries).
    Some servers also use this character to specify variable types, reference
    objects, etc. This might, at first, appear to cause problems with passthrough
    statements sent via Delphi’s Tquery component. The solution in this situation
    is to use two colons (for example, ::varname) together instead of just one in
    your sql statement.

    Also einfach den ":" durch "::" ersetzen und es läuft.

    Gruß
    Mikel


Anmelden zum Antworten