AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Summe mit Stored Procedure
Thema durchsuchen
Ansicht
Themen-Optionen

Summe mit Stored Procedure

Ein Thema von Hansa · begonnen am 3. Apr 2004 · letzter Beitrag vom 5. Mai 2004
Antwort Antwort
Seite 1 von 2  1 2      
Hansa

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

Summe mit Stored Procedure

  Alt 3. Apr 2004, 20:21
Hi,

ich muß 3 Spalten einer Table aufaddieren. In einer Zeile ! Nicht untereinander. Also 3 Felder jedes Datensatzes als Summe brauche ich. Hierzu wollte ich eine Stored Procedure in der DB anlegen, die den Wert zurückliefert. Irgendwie bin ich jetzt aber mit den Input/Output-Parametern / Variablen durcheinander geraten. Hat jemand ein kleines Beispiel ?
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#2

Re: Summe mit Stored Procedure

  Alt 4. Apr 2004, 10:11
Hallo Hansa,

das hört sich wie ein typischer Anwendungsfall der COMPUTED BY Klausel an:

SQL-Code:
CREATE TABLE test
  (zahl1 INTEGER,
   zahl2 INTEGER,
   zahl3 INTEGER,
   dieSumme COMPUTED BY (zahl1+zahl2+zahl3))
Dann bräuchtest du keine Stored Procedure.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
Hansa

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

Re: Summe mit Stored Procedure

  Alt 4. Apr 2004, 14:18
Stimmt ! So gehts auch. Aber momentan mit diesem Effekt : Beim Insert wird der Wert nicht berechnet. Bei einem Update dagegen schon. Wieso das ?

Noch eine prinzipielle Frage : Wird die Spalte physikalisch in der DB angelegt oder nur logisch ? Obiger Effekt deutet eher darauf hin, daß sie tatsächlich in der DB vorhanden ist. Dann hätte ich eine unnötige Redundanz. Und das führt (wie hier) zu seltsamen Nebeneffekten.

In diesem Fall wäre das Computed by schon geeignet, wenn es denn fehlerfrei funktioniert. Zwischenzeitlich habe ich aber auch eine Stored Procedure. Die macht, was ich will, aber ich komme von Delphi aus nicht an den ermittelten Wert. Es müßte doch mit "select * from Proc" gehen, oder nicht ? Nur, wohin muß das überhaupt ?
Gruß
Hansa
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#4

Re: Summe mit Stored Procedure

  Alt 4. Apr 2004, 14:48
Warum nicht einfach das Ganze in einer Abfrage berechnen?
Ich finde es ziemlich sinnlos bei jedem UPDATE/INSERT das olle Feld zu berechnen.
Könnte ein neuer Eintrag in der Liste werden: "Wie bremse ich am einfachsten meine DB aus"
  Mit Zitat antworten Zitat
Benutzerbild von Leuselator
Leuselator

Registriert seit: 18. Mär 2003
Ort: Berlin
589 Beiträge
 
Delphi 8 Architect
 
#5

Re: Summe mit Stored Procedure

  Alt 4. Apr 2004, 14:52
Wie Robert_G schon fragt, warum nicht:
SQL-Code:
SELECT SUM(Feld1) As Summe1
     , SUM(Feld2) As Summe2
     , SUM(Feld3) As Summe3
     , SUM(Feld1)+SUM(Feld2)+SUM(Feld3) As SummeGesamt
  FROM Tabelle
bzw. auf Satzebene:
SQL-Code:
SELECT *
     , Feld1+Feld2+Feld3 AS FeldSumme
  FROM Tabelle

Gruß
Tim Leuschner
Programmierer = moderner Sysiphos: stets wenn er meint, den Stein seiner Dummheit auf den Berg des Wissens gewuchtet zu haben, erblickt er einen völlig neuen Aspekt und der Dummfels poltert mit Getöse zurück ins Tal der Unwissenheit...
  Mit Zitat antworten Zitat
Hansa

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

Re: Summe mit Stored Procedure

  Alt 4. Apr 2004, 15:06
Aha, jo. 8) Hätte ich auch selber drauf kommen können. Ein extra Feld mitschleppen wollte ich nämlich eigentlich nicht. Jetzt braucht ihr mir nur noch zu sagen, warum ich über Stored Procedure den Wert nicht erhalte.
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von Leuselator
Leuselator

Registriert seit: 18. Mär 2003
Ort: Berlin
589 Beiträge
 
Delphi 8 Architect
 
#7

Re: Summe mit Stored Procedure

  Alt 4. Apr 2004, 15:08
DB?
Tim Leuschner
Programmierer = moderner Sysiphos: stets wenn er meint, den Stein seiner Dummheit auf den Berg des Wissens gewuchtet zu haben, erblickt er einen völlig neuen Aspekt und der Dummfels poltert mit Getöse zurück ins Tal der Unwissenheit...
  Mit Zitat antworten Zitat
Hansa

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

Re: Summe mit Stored Procedure

  Alt 4. Apr 2004, 16:11
IB
Gruß
Hansa
  Mit Zitat antworten Zitat
Lemmy

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

Re: Summe mit Stored Procedure

  Alt 4. Apr 2004, 17:41
Hi Hansa,

SQL-Code:
CREATE PROCEDURE Summe
RETURNS (Spalte1 NUMERIC(18), Spalte2 NUMERIC(18), Spalte2 NUMERIC(18))
AS
BEGIN
  FOR
    SELECT SUM(Saplte1), SUM(Spalte2), SUM(Spalte3) FROM Tabelle INTO Spalte1, Spalte2, Spalte3
  DO
   SUSPEND;
END^
So sollte es gehen, allerdings ohne Gewehr, da heute Sonntag und ich keine FB zur Hand habe....

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

n/a Beiträge
 
#10

Re: Summe mit Stored Procedure

  Alt 4. Apr 2004, 18:35
Mal eine Frage eines PL/SQL'lers, dessen Prozeduren nur über Umwege Ergnismengen ausspucken:
Wozu muss hier, auf Teufel komm raus, eine SP benutzt werden, wenn auch ein simples SELECT-Statement den Job erledigen kann?
Das ist jetzt schon das x'te Mal, dass ich mich das Frage...
  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 03:06 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