Thema: Delphi Stored pocedure

Einzelnen Beitrag anzeigen

Robert_G
(Gast)

n/a Beiträge
 
#39

Re: Stored pocedure

  Alt 21. Mai 2004, 20:02
Warum AU?
Dann hast du doch keinen Zugriff mehr auf den ":New Record".
Im Endeffekt wäre es bei der von dir gewählten Lösung nix weiter als das:
SQL-Code:
CREATE Table Robert_G.SENT_QUERIES_Audit
  (PK_SENT_QUERIES_Aud Integer -- Zusätzliche PK_Spalte
  ,PROJECT_NO NUMBER(22)
  ,SUBJECT_ID NUMBER(22)
  ,SUBJID VARCHAR2(80)
  ,ERROR_ID NUMBER(22)
  ,SENT_TO_MONITOR VARCHAR2(60)
  ,SENT_DATE VARCHAR2(200)
  ,BACK VARCHAR2(500)
  ,BACK_DATE VARCHAR2(20))
SQL-Code:
-- Prim Key auf diese Spalte
ALTER Table Robert_G.SENT_QUERIES_audit
  ADD Primary Key(PK_SENT_QUERIES_Aud)
  Using Index
SQL-Code:
-- Sequence für den Audit PK
CREATE Sequence Robert_G.SENT_QUERIES_Aud_Seq
SQL-Code:
-- Sequence für den Audit PK
CREATE Trigger Robert_G.SENT_QUERIES_Aud_PK_Trig
 Before INSERT ON Robert_G.SENT_QUERIES_Audit
 FOR EACH ROW
DECLARE
  NewID Integer;
BEGIN
  SELECT Robert_G.SENT_QUERIES_Aud_Seq.NextVal
  INTO NewID
  FROM Dual;

  :New.PK_SENT_QUERIES_Aud := NewID;
END;
SQL-Code:
CREATE Trigger Robert_G.SENT_QUERIES_Aud_Trig
 Before INSERT Or Update ON Robert_G.SENT_QUERIES
 FOR EACH ROW
 BEGIN
  -- Die 2 Zeilen klappen nur mit einem BU Trigger
  :New.EditDate := SysDate;
  :New.EditUser := User;

  If UPDATING Then
    INSERT INTO Robert_G.SENT_QUERIES_Audit
    VALUES
     ( null
     ,:Old.PROJECT_NO
     ,:Old.SUBJECT_ID
     ,:Old.SUBJID
     ,:Old.ERROR_ID
     ,:Old.SENT_TO_MONITOR
     ,:Old.SENT_DATE
     ,:Old.BACK
     ,:Old.BACK_DATE);
  End If;
END;
Falls du den Code zu IB übersetzen konntest, dürfte er dir das für alle Tabellen des angegeben Users machen. (Audit tabelle & Co erzeugen)

Das da oben wurde aus einer Tabellenleiche von vorgestern, die noch in meinem User lag, erzeugt.
  Mit Zitat antworten Zitat