Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi PROCEDURE aus TRIGGER heraus aufrufen ? (https://www.delphipraxis.net/97450-procedure-aus-trigger-heraus-aufrufen.html)

HolgerCW 10. Aug 2007 14:57

Datenbank: ORACLE • Version: 9 • Zugriff über: DATABASE

PROCEDURE aus TRIGGER heraus aufrufen ?
 
Hallo zusammen,

was muss ich an dem unten genannten Code ändern um die Procedure aufzurufen:

Delphi-Quellcode:
CREATE OR REPLACE TRIGGER Test1 BEFORE INSERT OR UPDATE ON TABELLE1 FOR EACH ROW
BEGIN
 
 EXECUTE PROCEDURE1 (:new.ANLAGENNUMMER, :new.ANZAHL, :new.letzte_ap, :new.letzte_ip, :new.letzte_fp)

END;
/
Danke und Gruss

Holger

Elvis 10. Aug 2007 15:09

Re: PROCEDURE aus TRIGGER heraus aufrufen ?
 
Du rufst sie auf, wie du sie in Delphi aufrufen würdest.
Und wie ich dir im anderen Thread empfahl: benutzte keine globalen Futionen, das wird einfach zu chaotisch.
So würde ein Package aussehen:
SQL-Code:
create or replace package Mööp is

  procedure TestProc(aAnlagenNummer in Tabelle1.AnlagenNummer
                    ,aAnzahl       in Tabelle1.Anzahl
                    ,aLetzteAP     in Tabelle1.Letzte_AP
                    ,aLetzteIP     in Tabelle1.Letzte_IP
                    ,aLetzteFP     in Tabelle1.Letzte_FP);

end Mööp;

create or replace package body Mööp is
  procedure TestProc(aAnlagenNummer in Tabelle1.AnlagenNummer
                    ,aAnzahl       in Tabelle1.Anzahl
                    ,aLetzteAP     in Tabelle1.Letzte_AP
                    ,aLetzteIP     in Tabelle1.Letzte_IP
                    ,aLetzteFP     in Tabelle1.Letzte_FP) is
  begin
    -- was auch immer hier passiert...
    null;
  end TestProc;
end Mööp;
Und so dein Trigger:
SQL-Code:
create or replace trigger TestTrigger
  before insert or update on Tabelle1 
  for each row
begin
  Mööp.TestProc(:new.AnlagenNummer,
                :new.Anzahl,
                :new.Letzte_AP,
                :new.Letzte_IP,
                :new.Letzte_FP);
end TestTrigger;
btw: Schaue mal bei hier vorbei, du scheinst einen verklemmten Capslock zu haben.

HolgerCW 10. Aug 2007 15:23

Re: PROCEDURE aus TRIGGER heraus aufrufen ?
 
Ja fantastisch,

das ist es doch. Musste das Execute weg machen und ein Semikolon ans Ende.

Gut dann werde ich Deinen Rat befolgen und die Sachen in ein Package packen.

Vielen Dank und noch ein schönes WE.

Mache für heute erst einmal Feierabend.

Gruss

Holger


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:52 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