![]() |
Datenbank: FireBird • Version: 2.X • Zugriff über: Nativ
StoredProc in View
Halli hallo,
ich versuche eine StoredProcedure in einer View aufzurufen.
SQL-Code:
beim Erzeugen bekomme ich aber die Fehlermeldung "Feature not Supportet"
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 ich könnte die View zwar nach diesem Muster umbauen,
SQL-Code:
aber dann bekomme ich Zeitprobleme, da ich bestimmte Informationen mehrfach lesen muss
Create View ArtikelUebersicht (Zaehler,Lagerbestand,Lagerwert...)
Select A.Zaehler, Select Lagerbestand from Lagerwerte(A.Zaehler)), Select LagerWert from Lagerwerte(A.Zaehler)), from Artikel A wie könnte man dieses Problem am besten umgehen? mfg Jens |
AW: StoredProc in View
|
AW: StoredProc in View
Ersetze den View durch eine SP
|
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:( |
AW: StoredProc in View
Das kommt darauf an, wie man das löst. Ich würde halt zum Ändern eine weitere SP nehmen
|
AW: StoredProc in View
das Problem selber hängt mit dieser Frage zusammen
![]() 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 00:26 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz