AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Zugriff auf Ergebnis einer Strored Procedure in SQL
Thema durchsuchen
Ansicht
Themen-Optionen

Zugriff auf Ergebnis einer Strored Procedure in SQL

Ein Thema von DirkG · begonnen am 24. Okt 2008 · letzter Beitrag vom 24. Okt 2008
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von DirkG
DirkG

Registriert seit: 29. Sep 2003
Ort: Schwerin
67 Beiträge
 
Delphi 5 Enterprise
 
#1

Zugriff auf Ergebnis einer Strored Procedure in SQL

  Alt 24. Okt 2008, 13:09
Datenbank: Interbase • Version: 6 • Zugriff über: IBConsole
Hallo!

Kann mir mal jemand auf die Sprünge helfen.

Ich habe in der Datenbank folgende Stored Procedure generiert:

SQL-Code:
SET TERM ^ ;

CREATE PROCEDURE StbGetID (MID INTEGER) RETURNS (PKID INTEGER) AS
BEGIN
  SELECT AVG(ID) FROM Stundenbuchungen WHERE (Mitglieder_ID = :MID) INTO :PKID;
  SUSPEND;
END
^

COMMIT WORK ^
SET TERM ;^
Ich kann die Procedure auch mit dem Aufruf :
SELECT * FROM StbGetID(31); ansprechen. Nun würde ich gerne beim Hinzufügen eines Datensatzes über einen Trigger die neue ID aus der Procedure auslesen und in das entsprechende Datenbankfeld eintragen. Dazu habe ich folgendes versucht:

SQL-Code:
SET TERM ^ ;

CREATE TRIGGER Stb_Add FOR stundenbuchungen BEFORE INSERT AS
BEGIN

  IF (NEW.ID IS NULL) THEN
    NEW.ID = SELECT * FROM StbGetID(NEW.MITGLIEDER_ID);

END
^

COMMIT WORK ^
SET TERM ;^
Leider bekomme ich nur Fehlermeldungen um die Ohren gehauen. Wo ist der Fehler?
Human are Human to make mistakes.
  Mit Zitat antworten Zitat
Benutzerbild von Billa
Billa

Registriert seit: 11. Aug 2003
237 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

Re: Zugriff auf Ergebnis einer Strored Procedure in SQL

  Alt 24. Okt 2008, 13:20
Welche Meldungen?
Willst Du wirklich den Durchschnitt der IDs ermiiteln?
Gruß Billa

Nur weil ich paranoid bin, heißt das nicht, daß die da draussen nicht hinter mir her sind....
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.541 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Zugriff auf Ergebnis einer Strored Procedure in SQL

  Alt 24. Okt 2008, 13:24
Außerdem dürfte ein
Zitat:
NEW.ID = SELECT * FROM...
sowieso nicht funktionieren. Das Feld sollte schon benannt sein, oder irre ich mich?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Billa
Billa

Registriert seit: 11. Aug 2003
237 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

Re: Zugriff auf Ergebnis einer Strored Procedure in SQL

  Alt 24. Okt 2008, 13:29
... ich denke, Du irrst nicht
Gruß Billa

Nur weil ich paranoid bin, heißt das nicht, daß die da draussen nicht hinter mir her sind....
  Mit Zitat antworten Zitat
Benutzerbild von DirkG
DirkG

Registriert seit: 29. Sep 2003
Ort: Schwerin
67 Beiträge
 
Delphi 5 Enterprise
 
#5

Re: Zugriff auf Ergebnis einer Strored Procedure in SQL

  Alt 24. Okt 2008, 13:31
@Billa
Zitat:
Welche Meldungen?
Die Fehlermeldung ist :

Dynamic SQL Error SQL error code = -104

Token unknown - line 4, char 49;

Statement:

CREATE TRIGGER Stb_Add FOR stundenbuchungen BEFORE INSERT AS
BEGIN
IF (NEW.ID IS NULL) THEN
SELECT NEW.ID FROM StbGetID(NEW.MITGLIEDER_ID);
END

Das ich den Durchschnitt berechne ist sicher nicht sinnvoll , doch mir ging es um das Prinzip des Zugriff aus einem Trigger auf die Prozedure (habe einfach mal was in die Procedure geschrieben, damit ich ein Ergebnis bekomme).

@DeddyH
Das Feld soll durch den Trigger auf der Serverseite versorgt werden. Daher wird es beim Einfügen eines Datensatz nicht mit übergeben. Der Name ID ist auch irreführend. Es ist nicht die Datensatz ID.
Human are Human to make mistakes.
  Mit Zitat antworten Zitat
Benutzerbild von Billa
Billa

Registriert seit: 11. Aug 2003
237 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#6

Re: Zugriff auf Ergebnis einer Strored Procedure in SQL

  Alt 24. Okt 2008, 13:33
Für so etwas gibt es Generatoren

Jetzt verstehe ich - abgesehen von der Syntax - erst recht nicht mehr, was eigentlich Deine Absicht ist.
Gruß Billa

Nur weil ich paranoid bin, heißt das nicht, daß die da draussen nicht hinter mir her sind....
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.541 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Zugriff auf Ergebnis einer Strored Procedure in SQL

  Alt 24. Okt 2008, 13:34
Das hab ich schon verstanden, aber theoretisch kann ein SELECT * ja mehrere Felder zurückliefern. Gut, ist in diesem Fall ausgeschlossen, aber ich denke nicht, dass Interbase das überprüft. Versuch es stattdessen mal mitNEW.ID = SELECT PKID FROM StbGetID(NEW.MITGLIEDER_ID);
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Zugriff auf Ergebnis einer Strored Procedure in SQL

  Alt 24. Okt 2008, 13:36
Eher einen select ... into :new.ID;
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.541 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Zugriff auf Ergebnis einer Strored Procedure in SQL

  Alt 24. Okt 2008, 13:39
Kann auch sein, ich habe sowas noch nie versucht, da noch nicht gebraucht. Allerdings muss ich mich Billa anschließen, wozu soll das gut sein?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von DirkG
DirkG

Registriert seit: 29. Sep 2003
Ort: Schwerin
67 Beiträge
 
Delphi 5 Enterprise
 
#10

Re: Zugriff auf Ergebnis einer Strored Procedure in SQL

  Alt 24. Okt 2008, 13:39
@mkinzler
Das war die Lösung. Manchmal sieht man den Wald ...
Dank euch für diew schnelle Lösung.
Human are Human to make mistakes.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 11:00 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