AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Firebird Stored Procedure in Select verwenden
Thema durchsuchen
Ansicht
Themen-Optionen

Firebird Stored Procedure in Select verwenden

Ein Thema von TheFrog · begonnen am 24. Feb 2011 · letzter Beitrag vom 25. Feb 2011
Antwort Antwort
TheFrog

Registriert seit: 24. Mär 2009
145 Beiträge
 
Delphi 11 Alexandria
 
#1

Firebird Stored Procedure in Select verwenden

  Alt 24. Feb 2011, 16:20
Datenbank: Firebird • Version: 2.1.3 • Zugriff über: IBX
Hallo zusammen,

ich möchte gerne eine Stored Procedure erstellen welche ich in einem Select verwenden kann und welche einen Aufrufparameter erhält.

Beispiel:

Select c.Name, a.Age
from Customer c, Get_Age_For_Customer(c.ID) a;

Die Stored Procedure ist folgendermassen deklariert:

PROCEDURE Get_Age_For_Customer(IDCustomer Integer)
returns (Age Integer)
begin
Age = 50; // muss natürlich berechnet werden
Suspend;
end;

D.h. ich möchte eine Liste mit allen Namen von Kunden und dem berechneten Alter erhalten.

Ist sowas überhaupt möglich?

Wenn ich es wie oben im IBExpert ausprobiere erhalte ich immer die angehängte Fehlermeldung.

Merci, Hans.
Miniaturansicht angehängter Grafiken
exceptionstoredprocedure.png  
  Mit Zitat antworten Zitat
Benutzerbild von dataspider
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.350 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Firebird Stored Procedure in Select verwenden

  Alt 24. Feb 2011, 16:52
Hi,

SP wie einen SubSelect in Klammern:
Code:
Select c.Name, (select age from Get_Age_For_Customer(c.ID)) as age from Customer c
[EDIT]
Das geht auch und mache ich oft, wenn die SP mehrere Ausgabe - Parameter hat:
Code:
Select c.name
     , a.age from Customer c
       left join Get_Age_For_Customer(c.ID) a on 1 = 1
[/EDIT]
Frank
Frank Reim

Geändert von dataspider (24. Feb 2011 um 16:55 Uhr)
  Mit Zitat antworten Zitat
TheFrog

Registriert seit: 24. Mär 2009
145 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Firebird Stored Procedure in Select verwenden

  Alt 25. Feb 2011, 07:51
Morgen Frank,

vielen Dank für die Antwort!

Hat beides funktioniert!

Soweit ich es in Erinnerung habe, ist ein Subselect ziemlich langsam. Kann es sein, dass die zweite Variante mit dem Join schneller ist?

Hans.
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.366 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: Firebird Stored Procedure in Select verwenden

  Alt 25. Feb 2011, 08:37
Hi,

beim Subselect bekommst Du nur einen Parameter zurück und du solltest genau drauf achte, dass hier auch nur ein Datensatz zurück kommen können. Wenn es mal mehr sind knallts...

Und wegen der GEschwindigkeit: jedes bessere SQL-Tool das ich kenne (FlameRobin bis IBExpert) gibt dir Werte bzgl. Dauer der Ausführung, Fetch usw. aus.... Probiers doch einfach aus...

GRüße
  Mit Zitat antworten Zitat
TheFrog

Registriert seit: 24. Mär 2009
145 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Firebird Stored Procedure in Select verwenden

  Alt 25. Feb 2011, 09:50
Hi,

laut IBExpert braucht der SubSelect etwas länger.

Dies deckt sich auch mit der Theorie

Danke für die Antworten.

Hans.
  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 02:51 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