AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi * in Stored Procedure [Interbase]

* in Stored Procedure [Interbase]

Ein Thema von Hansa · begonnen am 6. Sep 2004 · letzter Beitrag vom 7. Sep 2004
Antwort Antwort
Seite 2 von 2     12
Lemmy

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

Re: * in Stored Procedure [Interbase]

  Alt 6. Sep 2004, 12:52
Hi Hansa,

evtl. kann das mit dem * nicht funktionieren, weil Du alle Spalten einer Tabelle den Parametern der SP zuordnen musst:

SQL-Code:
CREATE PROCEDURE GetAdresseName (AdresseID INTEGER)
RETURNS (AdresseName VARCHAR(80))
AS
BEGIN
  FOR
    SELECT Name From Adresse Where ID=:AdresseID INTO AdresseName
  Do
   SUSPEND;
END^
Mit Into wird die SP quasi angewiesen die Werte in diesen Parameter (oder eben mehrere) zu übergeeben. Schau Dir doch mal das SP-Tutorial auf meiner Seite an

http://www.delphi-tutorials.de/Tutor...f_tutorial.zip

Grüße
Lemmy
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#12

Re: * in Stored Procedure [Interbase]

  Alt 6. Sep 2004, 22:37
Da ich hier schon des öfteren Prozeduren gesehen habe (MSSQL & IB/FB), die sich wie Views verhalten, wollte ich mich mal schlau machen, warum Oracle das nicht unterstützt.

Die Antwort ist simpel: Das Ganze funktioniert (zumindest beim SQL Svr) über zwei Threads.
Der erste arbeitet die Prozedur ab und schickt die Werte (mit suspend) durch eine Pipe an den zweiten.
Das kann in einer großen DB niemals funktionieren da es einfach zu viel Leistung schluckt (sicher nicht mehr als 20-30 User, bei mehr wird es zu Verzögerungen kommen, die der User bemerken würde).

Ein wesentlich effektiverer Weg wäre es einen Verweis auf einen Cursor zu übergeben.
Falls die FB/IB-Komponenten (sie arbeiten doch direkt mit der API von FB/IB ?) das ähnlich wie es manche Ora-Kompos unterstützen, könntest du mit dem Rückgabewert sofort ein DataSet oder eine Query "bestücken".
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#13

Re: * in Stored Procedure [Interbase]

  Alt 7. Sep 2004, 00:41
Zitat von Robert_G:
...Ein wesentlich effektiver Weg wäre es einen Verweis auf einen Cursor zu übergeben...
nene, viel zu umständlich. 8)
Gruß
Hansa
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#14

Re: * in Stored Procedure [Interbase]

  Alt 7. Sep 2004, 00:47
Zitat von Hansa:
Zitat von Robert_G:
...Ein wesentlich effektiver Weg wäre es einen Verweis auf einen Cursor zu übergeben...
nene, viel zu umständlich. 8)
nope...

SQL-Code:
create or replace function GetCursor(pSomeValue in varchar2) return SomeRefCurType
is
  oCur SomeRefCurType;
begin
  open oCur for
    SELECT X
    FROM Y
    WHERE Z like pSomeValue;
  
  return oCur;
end;
Wird in FB sicher auch funktionieren. (wenn auch mit etwas anderer Syntax )
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#15

Re: * in Stored Procedure [Interbase]

  Alt 7. Sep 2004, 01:20
Robert, erspare mir den Oracle-Mist. Mir ist schon klar, daß ich einen Nagel auch mit der bloßen (dann blutenden) Hand einkloppen kann.
Gruß
Hansa
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#16

Re: * in Stored Procedure [Interbase]

  Alt 7. Sep 2004, 01:32
Zitat von Hansa:
Robert, erspare mir den Oracle-Mist. Mir ist schon klar, daß ich einen Nagel auch mit der bloßen (dann blutenden) Hand einkloppen kann.
Hey, würde ich mich mit FB auskennen, hättest du da PSQL Code gesehen.
So musst du halt selbst schauen, ob die Lösung in FB möglich bzw. ob sie überhaupt besser ist (das was ich weiter oben geschrieben habe, weiß ich halt nur vom SQL Svr).
Da ich mit soviel Freundlichkeit auf einmal nicht umgehen kann:
@Gérome: Wie wär's mit einer Ignore-Liste pro Autor?
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 08:56 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