Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   StoredProc in View (https://www.delphipraxis.net/153298-storedproc-view.html)

Pro_RJ 28. Jul 2010 12:56

Datenbank: FireBird • Version: 2.X • Zugriff über: Nativ

StoredProc in View
 
Halli hallo,
ich versuche eine StoredProcedure in einer View aufzurufen.

SQL-Code:
Create View ArtikelUebersicht (Zaehler,Lagerbestand,Lagerwert...)

Select A.Zaehler,L.Lagerbestand,L.Lagerwert
from Artikel A
Left outer jOin Lagerwerte(A.Zaehler) W on 1=1
beim Erzeugen bekomme ich aber die Fehlermeldung "Feature not Supportet"

ich könnte die View zwar nach diesem Muster umbauen,
SQL-Code:
Create View ArtikelUebersicht (Zaehler,Lagerbestand,Lagerwert...)
Select
A.Zaehler,
Select Lagerbestand from Lagerwerte(A.Zaehler)),
Select LagerWert from Lagerwerte(A.Zaehler)),
from Artikel A
aber dann bekomme ich Zeitprobleme, da ich bestimmte Informationen mehrfach lesen muss

wie könnte man dieses Problem am besten umgehen?

mfg
Jens

DeddyH 28. Jul 2010 12:58

AW: StoredProc in View
 
Is it possible to create a view that uses stored procedure?

mkinzler 28. Jul 2010 13:01

AW: StoredProc in View
 
Ersetze den View durch eine SP

Pro_RJ 28. Jul 2010 13:27

AW: StoredProc in View
 
hmm schade,
aber eine reine SP kann ich leider nicht verwenden, da diese Datenmenge auch änderbar sein muss, und das geht ja bei einer SP schlecht:(

mkinzler 28. Jul 2010 13:29

AW: StoredProc in View
 
Das kommt darauf an, wie man das löst. Ich würde halt zum Ändern eine weitere SP nehmen

Pro_RJ 28. Jul 2010 13:52

AW: StoredProc in View
 
das Problem selber hängt mit dieser Frage zusammen
http://www.delphipraxis.net/153081-f...toredproc.html


Kurze Beschreibung des Orginal Problems
Ich habe es jetzt so gelöst, das ich die "Orginal" Tabelle durch eine View ersetzt habe und die Lagerfelder einfach per "Select Lagerbestand from Lagerberechnen()" überschrieben habe.
Dies hatt den VOrteil das wir nicht alle Statemts im Programm ändern müssen und die Bearbeitung trotzdem funktioniert.

Wenn ich jetzt die View als eine SP erzeuge müsste, ich alle DML-Statements auf die Tabelle ändern. Und genau das ist das, was wir vermeiden wollen.
Das Grundproblem liget darin, das wir ca 10 Lagerfelder bnötigen (Laberbestand,Lagerwert,Inventurmene,Inventurwert, Summe aller Offenen Bestellungen (Menge,Wert),offene Aufträge(Menge,wert) usw)
Da sich viele Werte aus anderen werten errechnen ist es "unsinnig" und vor allem deutlich langsamer diese Werte mehrfach zu berechnen.
Bsp:
der Lagerbestand muss errechnet werden.
Offene Bestellungen muss errechnet werden.
Offene Aufträge muss errechnet werden.
LagerVerfügbar = Lagerbestand + Bestellungen - Aufträge.
Bei den Lagerwerten ist es noch schlimmer :
LagerWert = Lagerbestand * EKP.
Lagerverfügbar = (Lagerbestand + Bestellungen - Aufträge) * EKP
usw

Bei dieser Berechnung benötige ich z.B den Lagerbestand schon 4 mal. und Im moment muss ich ihn 4 mal berechnen --> damit dauert die Suche natürlich auch 4 mal so lange.Und damit ein einfach Select viel zu langsam.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:40 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