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.