Announcement

Collapse
No announcement yet.

Meldung per Trigger an Applikation

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Meldung per Trigger an Applikation

    Hallo,



    wie sieht der Trigger unter Oracle aus, wenn dieser eine Prozedur in <br>

    einer Applikation aufrufen soll (Applikation unter Delphi bzw. Kylix).



    CREATE OR REPLACE TRIGGER database_update
    <br>
    AFTER UPDATE ON table1
    <br>
    BEGIN
    <br>
    ???????

    ???????

    END;<br>

    /



    Und wie sieht die Funktion oder Prozedur im Programmcode von Delphi

    bzw. Kylix aus.



    Zweck ist es, dass Oracle sich meldet, wenn die Database von aussen

    verändert wurde und ich in einer Applikation darauf reagieren kann.



    Gruss



    Carsten

  • #2
    genau so. vergiss nicht die Möglichkeit von INSERT und DELETE. Das sieht dann so aus:
    CREATE OR REPLACE TRIGGER database_update
    AFTER UPDATE or insert or delete ON table1
    BEGIN
    proc_tut_irgendwas;
    END;
    /
    Ausserdem gibt es die Option, den Trigger für jede neue (oder gelöschte oder geänderte) Splate feuern zu lassen:
    CREATE OR REPLACE TRIGGER database_update
    AFTER UPDATE or insert or delete ON table1 FOR EACH ROW ..

    Comment


    • #3
      Hallo!

      Wie sieht aber dann die Anbindung an Delphi sprich meine Application

      aus?

      Die Datenbank soll ja immerhin eine meiner, in meinem Programm

      definierten PROCEDURE's aufrufen???

      mfg Karl.

      Comment


      • #4
        Ich glaube nicht, daß das möglich ist, was Ihr da wollt. In diesem Fall müsste der Trigger ja warten, bis Ihr auf einem PC Eure Anwendung öffnet, damit er die Prozedur überhaupt aufrufen kann. Soll der Trigger dann alle PCs im Netzwerk überprüfen, wo diese Anwendung gerade läuft? Anderenfalls, wenn der Trigger nicht solange warten soll, würde ja nur etwas passieren, wenn gerade zufällig Eure Anwendung offen ist.
        Aber Ihr könnt den Datenbank-Trigger die Änderungen ja in eine neue Datenbanktabelle schreiben lassen. In der Prozedur Eurer Anwendung, die Ihr bei jedem Programmstart und gegebenenfalls nach einer bestimmten Zeit ausführen solltet, überprüft Ihr dann, ob Einträge in der Änderungstabelle vorhanden sind. Diese könnt Ihr dann auswerten und nach Abarbeitung wieder löschen.

        Viel Spaß
        Steffe

        Comment

        Working...
        X