AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi stored proceduren in triggern ausführen?
Thema durchsuchen
Ansicht
Themen-Optionen

stored proceduren in triggern ausführen?

Ein Thema von kiar · begonnen am 12. Nov 2004 · letzter Beitrag vom 12. Nov 2004
Antwort Antwort
Benutzerbild von kiar
kiar

Registriert seit: 2. Aug 2003
Ort: Aschersleben
1.362 Beiträge
 
Delphi 5 Professional
 
#1

stored proceduren in triggern ausführen?

  Alt 12. Nov 2004, 10:21
hallo gemeinde,

folgender trigger feuert bei insert odr update. es klappt auch ganz gut.ich habe jetzt ein problem.die procedure padd_Mitarbeiter muss eine ID übergeben werden, welche ich in einer anderen procedure ermittle, die auch in ein andere tabelle eingreift und hier meckert ibexpert.

die frage ist nun, ob es sinnvoll ist die proceduren zu verschachteln, oder anders gefragt geht das überhaupt?

DB :Firebird 1.5
zugriff : ibexpert


SQL-Code:
CREATE TRIGGER TAB_ANWESENHEIT_BIU1 FOR TAB_ANWESENHEIT
ACTIVE BEFORE INSERT OR UPDATE POSITION 0
AS
DECLARE VARIABLE IMITARBEITERID INTEGER;

BEGIN

  IF (NEW.ANWESENHEIT_ID IS NULL) THEN
  BEGIN
      NEW.ANWESENHEIT_ID = GEN_ID(GEN_TAB_ANWESENHEIT_ID,1);
      EXECUTE PROCEDURE PADD_MITARBEITER(2);
  END
  ELSE
  BEGIN
   UPDATE TAB_ANWESENHEIT SET
   OUT_TIME = CURRENT_TIME;
  END
END
raik
verhältnisse die einem nicht passen,
muss man verändern oder verlassen
  Mit Zitat antworten Zitat
kachel81

Registriert seit: 21. Okt 2004
25 Beiträge
 
#2

Re: stored proceduren in triggern ausführen?

  Alt 12. Nov 2004, 13:38
Das geht auf jeden Fall, poste einfach mal wobei er meckert.
  Mit Zitat antworten Zitat
Benutzerbild von kiar
kiar

Registriert seit: 2. Aug 2003
Ort: Aschersleben
1.362 Beiträge
 
Delphi 5 Professional
 
#3

Re: stored proceduren in triggern ausführen?

  Alt 12. Nov 2004, 13:44
hallo,

ich habe die procedure PAdd_Mitarbeiter, welche die id erwartet .
diese id ermittle ich in einer anderen procedure, so das das statement wie folgt aussiehtexecute procedure pAdd_mitarbeiter(execute procedure Psearch_mitid(vnummer)) wobei die procedure Psearch_mitid auf eine andere tabelle zugreift,
wenn ich die parameter für die erste procedure hard codiere funktioniert das .

raik
verhältnisse die einem nicht passen,
muss man verändern oder verlassen
  Mit Zitat antworten Zitat
kachel81

Registriert seit: 21. Okt 2004
25 Beiträge
 
#4

Re: stored proceduren in triggern ausführen?

  Alt 12. Nov 2004, 13:52
So geht das nicht.

Leg Dir eine Variable an, hol Dir den Rückgabewert der ersten Methode und rufe die zweite damit auf:

Delphi-Quellcode:
CREATE TRIGGER TAB_ANWESENHEIT_BIU1 FOR TAB_ANWESENHEIT
ACTIVE BEFORE INSERT OR UPDATE POSITION 0
AS
DECLARE VARIABLE IMITARBEITERID INTEGER;
DECLARE VARIABLE MyID INTEGER
BEGIN

  IF (NEW.ANWESENHEIT_ID IS NULL) THEN
  BEGIN
      NEW.ANWESENHEIT_ID = GEN_ID(GEN_TAB_ANWESENHEIT_ID,1);
      
      MyID = null;
      select
        p.wert
      from
        Psearch_mitid(vnummer) p
      into
        :MyID

      if (:MyID is not null) then
        EXECUTE PROCEDURE PADD_MITARBEITER(:MyID);
  END
  ELSE
  BEGIN
   UPDATE TAB_ANWESENHEIT SET
   OUT_TIME = CURRENT_TIME;
  END
END
Das müßtest Du noch anpassen, aber so wirds funktionieren.
  Mit Zitat antworten Zitat
Benutzerbild von kiar
kiar

Registriert seit: 2. Aug 2003
Ort: Aschersleben
1.362 Beiträge
 
Delphi 5 Professional
 
#5

Re: stored proceduren in triggern ausführen?

  Alt 12. Nov 2004, 14:12
danke,

werde ich probieren.

raik
verhältnisse die einem nicht passen,
muss man verändern oder verlassen
  Mit Zitat antworten Zitat
Benutzerbild von kiar
kiar

Registriert seit: 2. Aug 2003
Ort: Aschersleben
1.362 Beiträge
 
Delphi 5 Professional
 
#6

Re: stored proceduren in triggern ausführen?

  Alt 12. Nov 2004, 14:23
hallo kachel81,

es sieht schon vielversprechender aus, er meckert aber trotzdem noch und sagt, das die spalte vnummer keinen bezug auf die referenztabelle hat. ist ja auch richtig, da diese procedure auf eine andere tabelle zugreift.

raik
verhältnisse die einem nicht passen,
muss man verändern oder verlassen
  Mit Zitat antworten Zitat
kachel81

Registriert seit: 21. Okt 2004
25 Beiträge
 
#7

Re: stored proceduren in triggern ausführen?

  Alt 12. Nov 2004, 14:57
Genau, die vnummer mußt du dann entsprechend auch noch über ein Select ermitteln.
  Mit Zitat antworten Zitat
Benutzerbild von kiar
kiar

Registriert seit: 2. Aug 2003
Ort: Aschersleben
1.362 Beiträge
 
Delphi 5 Professional
 
#8

Re: stored proceduren in triggern ausführen?

  Alt 12. Nov 2004, 15:05
so habe ich,

jetzt werde ich mal testen ob das so geht.

gleich noch mal ne frage hinterher ich weis das man das nicht machen sollte, aber die mod schauen bestimmt nicht hier rein

wie kann ich sp eigentlich debuggen?

danke
verhältnisse die einem nicht passen,
muss man verändern oder verlassen
  Mit Zitat antworten Zitat
kachel81

Registriert seit: 21. Okt 2004
25 Beiträge
 
#9

Re: stored proceduren in triggern ausführen?

  Alt 12. Nov 2004, 15:17
Ich wußte garnicht, daß man das nicht machen sollte, naja...

Also ich verwende das Tool IBExpert, da ist ein Debugger für SP enthalten, mit Haltepunkten und einer Liste aller verwendeten Parameter mit Werten usw.

Ich schreibe mir aber bei der Fehlersuche meistens die Werte die mich interessieren in eine Dummy-Tabelle raus.
  Mit Zitat antworten Zitat
Benutzerbild von kiar
kiar

Registriert seit: 2. Aug 2003
Ort: Aschersleben
1.362 Beiträge
 
Delphi 5 Professional
 
#10

Re: stored proceduren in triggern ausführen?

  Alt 12. Nov 2004, 15:22
ich nutze auch ibexpert , aber nur die freie version da ist das feature nicht eingeschaltet. naja trotzdem danke werde auch alles in eine tabelle rausschreiben.

naja für einen hobby programmierer ist das auch ausreichend

raik
verhältnisse die einem nicht passen,
muss man verändern oder verlassen
  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 10:31 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz