AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi IB: Stored Procedure zur Berechnung
Thema durchsuchen
Ansicht
Themen-Optionen

IB: Stored Procedure zur Berechnung

Ein Thema von UGrohne · begonnen am 19. Mär 2003 · letzter Beitrag vom 19. Mär 2003
Antwort Antwort
UGrohne

Registriert seit: 12. Dez 2002
Ort: Pliezhausen
65 Beiträge
 
Delphi 7 Professional
 
#1

IB: Stored Procedure zur Berechnung

  Alt 19. Mär 2003, 09:30
Moin,
ich bin jetzt dazu übergegangen eine Stored Procedure für die Berechnung der Gesamtkosten eines Auftrags zu verwenden. Folgendermaßen sieht sie aus:
Code:
CREATE PROCEDURE auftragskosten(anr integer)
RETURNS (auftragssumme integer) AS
DECLARE VARIABLE summe integer;
DECLARE VARIABLE preis integer;
DECLARE VARIABLE menge integer;
DECLARE VARIABLE anrtemp integer;
BEGIN
summe=0;
FOR SELECT art.e_preis, pos.menge, pos.anr
    FROM positionen pos
    LEFT OUTER JOIN artikel art ON pos.artikel=art.artnr
    WHERE (pos.anr=:anr)
    INTO :preis, :menge, :anrtemp
DO
    summe=summe+(preis*menge);
    END;
:auftragssumme=:summe;
END;
Sie funktioniert, außer dass ich einen Fehler bekomm, wenn ich das oben ausführe (Listenindex ausserhalb gültigen Bereichs, oder so), aber sie ist richtig da.

Wenn ich sie jetzt aber ausführe, bekomme ich ein leeres Ergebnis zurück. Warum? Hab auch schon auftragssumme und summe ohne : gehabt, ist auch nix anderes. Wer kann mir den erlösenden Tipp geben?

Gruß
Uwe
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.380 Beiträge
 
Delphi 10.3 Rio
 
#2
  Alt 19. Mär 2003, 10:35
Hi,

wie wärs mit folgendem:
Code:
CREATE PROCEDURE auftragskosten(anr integer)
RETURNS (auftragssumme integer) AS

BEGIN

FOR SELECT SUM(art.e_preis*pos.menge)
    FROM positionen pos
    LEFT OUTER JOIN artikel art ON pos.artikel=art.artnr
    WHERE (pos.anr=:anr)
    INTO :auftragssumme
DO
  SUSPEND;
    END
END^
1. Die Summe müsste jetzt auch so berechnet werden können.

2. Um Daten von der SP an die aufrufende Stelle zu übertragen wird ein SUSPEND; oder EXIT; benötigt!!!

Grüße
Lemmy
  Mit Zitat antworten Zitat
UGrohne

Registriert seit: 12. Dez 2002
Ort: Pliezhausen
65 Beiträge
 
Delphi 7 Professional
 
#3
  Alt 19. Mär 2003, 10:56
Hmmm, wär auch ne Möglichkeit gewesen
Danke, funktioniert einwandfrei

Gruß
Uwe
  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 23:59 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