AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken FIrebird Feld ersetzen durch StoredProc
Thema durchsuchen
Ansicht
Themen-Optionen

FIrebird Feld ersetzen durch StoredProc

Ein Thema von Pro_RJ · begonnen am 20. Jul 2010 · letzter Beitrag vom 20. Jul 2010
Antwort Antwort
Pro_RJ

Registriert seit: 16. Apr 2008
146 Beiträge
 
#1

FIrebird Feld ersetzen durch StoredProc

  Alt 20. Jul 2010, 09:33
Datenbank: FireBird • Version: 2.X • Zugriff über: Nativ
Huhu liebe Delphi-Gemeinde,

Ich hätte da mal eine kleine Frage:
ich habe ein Bestehendes Datenbanksystem mit Folgendem Aufbau:
Tabelle Artikel
Felder ArtikelNr1,Bezeichnung,Lagerbestand.

Bisher wurde der Lagerbestand in dieser Tabell immer aufaddiert bzw. abgezogen. Dies soll jetzt aber geändert werden so das der Lagerbestand per StoredProcedure nur berechnet wird, wenn er wirklich benötigt wird. DIese änderung ist nötig da die Erfassung von Eingans/Ausgangsbelegen immer langsamer wird und es nachweislich an der Lagerpflege hängt. Desweitern ist es ein Problem, wenn man per Datenimport Daten einliest, die den Lagrbestand verändern sind die Artikel so lange gespert, bis die Transaction abgeschlossen ist, was wiederum zu dem Problem füht, wenn mehrere User gleichzeitig einen Import durchführen.

Da diese Tabelle aber eine unserer meist genutzten Tabellen im Programm ist und wir nicht jedes Statement ändern möchte hatte ich mir gedacht, gibt es eine möglichkeit das Feld Lagerbestand zu belassen aber diesem Feld eine Procedure zu hinterlegen. ALso das das Feld nicht mehr vom Typ Numeric ist sondern eben immer aktuell Berechnet wird.

Oder was eventuell auf eine möglichkeit wäre, Die Tabelle Umzubenennen in z.b. Artikel_Stamm und eine View anzulegen mit dem Namen Artikel und darin das Feld einfach zu berechnen. Aber da ist das Problem, das man in eine View keine StoredProc einbinden kann(hier kommt immer die Fehlermeldung "Feature not Supported")

ich hoffe, das mir jemand von euch helfen kann.

mfg
Jens
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: FIrebird Feld ersetzen durch StoredProc

  Alt 20. Jul 2010, 09:36
Jein, man müsste dann eionen Join auf die SP machen
Markus Kinzler
  Mit Zitat antworten Zitat
Pro_RJ

Registriert seit: 16. Apr 2008
146 Beiträge
 
#3

AW: FIrebird Feld ersetzen durch StoredProc

  Alt 20. Jul 2010, 09:40
Das dachte ich mir auch aber dann müsste ich eben an jedes Statement wo der Lagerbestand benötigt wird ein
Select ... from Artikel Left outer Join Lagerbestand()....
machen und genau das wollte ich eigentlich vermeiden
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#4

AW: FIrebird Feld ersetzen durch StoredProc

  Alt 20. Jul 2010, 09:41
Warum muss für die Berechnung unbedingt eine Procedure benutzt werden? Enthält die so komplizierte Berechnungen?

Deine Idee mit der View ist doch wunderbar und löst genau deine Probleme.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: FIrebird Feld ersetzen durch StoredProc

  Alt 20. Jul 2010, 09:43
Eine SP liefert nun mal eine Ergebnismenge ("Tabelle")
Markus Kinzler
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#6

AW: FIrebird Feld ersetzen durch StoredProc

  Alt 20. Jul 2010, 09:45
Achso, ich dachte das ist ein Wert pro Artikel, immerhin war das in der Ursprungstabelle ja auch nur ein Feld. Aber so kann man sich eben irren, sorry.
  Mit Zitat antworten Zitat
Pro_RJ

Registriert seit: 16. Apr 2008
146 Beiträge
 
#7

AW: FIrebird Feld ersetzen durch StoredProc

  Alt 20. Jul 2010, 09:49
Ja also in der Tabelle steht der Lagerbestand für eine Artikel. die Berechnung geht aber noch weiter, da der Lagerbestand auch noch pro Lagerort berechnet werden kann/muss. und eine StoredProc ist da von der Pflegbarkeit her leichter. das Prinzip haben wir auch schon in anderen Stellen im Programm genutzt (z.B. bei der Berechnung einer SaldenListe) da war aber der Vorteil, das das eine Komplett neue Tabelle war. nur hier ist eben eine vorhandene tablle betroffen,
Desweiteren sollte diese StoredProc auch mer zurück geben(z.B.Lagerbestand,Lagerwert,BestellteMenge,Re servierte Menge,Unterschrittene Menge usw)

Geändert von Pro_RJ (20. Jul 2010 um 09:54 Uhr)
  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 04: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