AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Feldwert in IB Automatisch berechnen duch sp.
Thema durchsuchen
Ansicht
Themen-Optionen

Feldwert in IB Automatisch berechnen duch sp.

Ein Thema von mojo777 · begonnen am 21. Jun 2006 · letzter Beitrag vom 22. Jun 2006
Antwort Antwort
Seite 1 von 2  1 2      
mojo777

Registriert seit: 10. Sep 2003
402 Beiträge
 
#1

Feldwert in IB Automatisch berechnen duch sp.

  Alt 21. Jun 2006, 22:21
Datenbank: ib • Version: 6 • Zugriff über: sql
hallo,
kennst jemand vll eine möglichkeit einen feldwert automatisch durch eine sp zu berechnen?
ich will z.b. eine spalte haben, in der steht wieviel ein kunde bereits gekauft hat.
ist sicherlich auch anders möglich, aber ich würde das gerne mal so elegant lösen.


mfg
Muh macht die kUh
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Feldwert in IB Automatisch berechnen duch sp.

  Alt 21. Jun 2006, 22:25
Du kannst einen Trigger schreiben, der dann die SP verwendet.
Sind die Kaufvorgänge auch in der DB gespeichert?
Markus Kinzler
  Mit Zitat antworten Zitat
mojo777

Registriert seit: 10. Sep 2003
402 Beiträge
 
#3

Re: Feldwert in IB Automatisch berechnen duch sp.

  Alt 21. Jun 2006, 22:27
ja, aber ich will die daten nicht statisch drin haben. (also in der spalte.. die verkäufe sind natürlich gespeichert in einer table... geht dann mit sum bzw count etc..)
der trigger ist ja schon zu krass für sowas..
wäre echt am besten als eine art "computed by" feld.
Muh macht die kUh
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Feldwert in IB Automatisch berechnen duch sp.

  Alt 21. Jun 2006, 22:32
Zitat von mojo777:
ja, aber ich will die daten nicht statisch drin haben. (also in der spalte.. die verkäufe sind natürlich gespeichert in einer table
es lebe die Redundanz
Zitat:
... geht dann mit sum bzw count etc..)
Ja
Zitat:
der trigger ist ja schon zu krass für sowas..
Warum, im "before Insert" der Verkaufstabelle.
Zitat:
wäre echt am besten als eine art "computed by" feld.
Dann würde es jedesmal berechnet werden, wenn ein select auf die Daten erfolgen würde.
Markus Kinzler
  Mit Zitat antworten Zitat
mojo777

Registriert seit: 10. Sep 2003
402 Beiträge
 
#5

Re: Feldwert in IB Automatisch berechnen duch sp.

  Alt 21. Jun 2006, 22:37
Zitat:
Dann würde es jedesmal berechnet werden, wenn ein select auf die Daten erfolgen würde.
ja. das will ich


redundanz will ich nich...
Muh macht die kUh
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Feldwert in IB Automatisch berechnen duch sp.

  Alt 21. Jun 2006, 22:40
Zitat von mojo777:
Zitat:
Dann würde es jedesmal berechnet werden, wenn ein select auf die Daten erfolgen würde.
ja. das will ich
Ist dir der Datenbankzugriff zu schnell (zu gute Performance, die zunichte gemacht werden muß)?


redundanz will ich nich... [/quote]Wenn du die Verkäufe auf der einen seite und die Anzahl in der "Artikel"-Tabelle nochmal speicherst, dann ist das Redundanz.
Markus Kinzler
  Mit Zitat antworten Zitat
mojo777

Registriert seit: 10. Sep 2003
402 Beiträge
 
#7

Re: Feldwert in IB Automatisch berechnen duch sp.

  Alt 21. Jun 2006, 22:49
......
nun ja.
die anwendung ist in der tat nicht zeitkritisch.
und diese eine query wird nicht allzuoft ausgeführt... also auf userbefehl halt. die 10-20 ms sind ok.

gruß
Muh macht die kUh
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Feldwert in IB Automatisch berechnen duch sp.

  Alt 21. Jun 2006, 23:01
Wie gesagt:
Beste Variante: SP die manuell aufgerufen wird und Anzahl der Verkaufsdatensätze pro Artikel zurückliefert.
2. Variante: Anzahl ist normales Feld in Tabelle, welches in einem Trigger der Verkaufstabelle nach Insert ( durch Aufruf der SP) gesetzt wird.
3. Lösung durch View, in dem das Anzahl Feld durch Aufruf der SP bei jedem Zugriff auf das Feld "berechnet" wird.

Nachteil von 3: Je nach Anzahl der Artikel und deren Verkauftransaktionen sehr langsam, da bei jdem Zugriff berechnet werden muß. D.H wenn man select * from Artikel; ausführt, muß für jede Zeile ein Aufruf und damit eine Summenbildung erfolgen.
Markus Kinzler
  Mit Zitat antworten Zitat
mojo777

Registriert seit: 10. Sep 2003
402 Beiträge
 
#9

Re: Feldwert in IB Automatisch berechnen duch sp.

  Alt 21. Jun 2006, 23:08
hmm.. ich dachte view geht nur nach statischen inhalten... also kann nur mit parametern arbeiten, die auch fest irgendwo gespeichert sind....

ok. es scheint so zu sein, dass man keine lustige funktion in computed by schreiben kann in ib wie in delphi...

dank dir!
Muh macht die kUh
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Feldwert in IB Automatisch berechnen duch sp.

  Alt 21. Jun 2006, 23:23
Natürlich kannst du auch in Delphi eine computed Feld anlegen, das du dann durch eine SP berechnen lassen kannst. Oder du kannst die Anzahl der Verkäufe einfach in der Query hinzu-Joinen. in beiden Fällen gibt es dann keine Redundanz, da die Felder ja nicht wirklich existieren.
Für was brauchst du das eigentlich?
Markus Kinzler
  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 16: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