![]() |
Datenbank: ib • Version: 6 • Zugriff über: sql
Feldwert in IB Automatisch berechnen duch sp.
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 |
Re: Feldwert in IB Automatisch berechnen duch sp.
Du kannst einen Trigger schreiben, der dann die SP verwendet.
Sind die Kaufvorgänge auch in der DB gespeichert? |
Re: Feldwert in IB Automatisch berechnen duch sp.
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. |
Re: Feldwert in IB Automatisch berechnen duch sp.
Zitat:
Zitat:
Zitat:
Zitat:
|
Re: Feldwert in IB Automatisch berechnen duch sp.
Zitat:
redundanz will ich nich... :-P |
Re: Feldwert in IB Automatisch berechnen duch sp.
Zitat:
redundanz will ich nich... :-P[/quote]Wenn du die Verkäufe auf der einen seite und die Anzahl in der "Artikel"-Tabelle nochmal speicherst, dann ist das Redundanz. |
Re: Feldwert in IB Automatisch berechnen duch sp.
...... :-D
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ß |
Re: Feldwert in IB Automatisch berechnen duch sp.
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
SQL-Code:
ausführt, muß für jede Zeile ein Aufruf und damit eine Summenbildung erfolgen.
select * from Artikel;
|
Re: Feldwert in IB Automatisch berechnen duch sp.
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! |
Re: Feldwert in IB Automatisch berechnen duch sp.
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? |
Re: Feldwert in IB Automatisch berechnen duch sp.
:-) naja. eigentlich ist das nur so eine prinzipielle frage gewesen. so zum spielen.
wollte halt einfach die computed by felder in ib besser kennen lernen. es ist manchmal super bequem aktionen auf interbase zu verladen. ok. gut nacht. :-) danke dir! |
Re: Feldwert in IB Automatisch berechnen duch sp.
Zitat:
|
Re: Feldwert in IB Automatisch berechnen duch sp.
also wenn ich eine abfrage über eine ganze tabelle mache und die zeilen unterscheiden sich z.b. nach kunden, dann muss ja die view immer den aktuellen (zeiger) kunden beachten. kann sie das denn?
ich wüsste keine möglichkeit. :-( |
Re: Feldwert in IB Automatisch berechnen duch sp.
So was ist doch nur ein SQL 3-Zeiler und in Delphi mit einem TDataset schnell auszulesen :
SQL-Code:
Ohne Gewähr (nicht getestet) ! Ob das jetzt mit einem Dataset gemacht wird ("SELECT * FROM DS"), oder es gibt eine SP und ein Dataset ("SELECT * FROM SP") spielt keine große Rolle. Habe mir angewöhnt, bei langen Feldlisten und wenigen Rückgabewerten, das eher mit SPs zu machen. Ist viel besser für Source, wegen Tibbvehler, ''''''''' vergessener Parameter usw. Für Anfänger aber eher nicht voreilig zu empfehlen.
SELECT A.NR, SUM (V.UMSATZ) AS VKU FROM VERKAUF V JOIN ART A ON (A.ID = V.ID_ART) WHERE ... group by A.NR
|
Re: Feldwert in IB Automatisch berechnen duch sp.
Zitat:
|
Re: Feldwert in IB Automatisch berechnen duch sp.
.. und Du kannst natürlich auch ein Computed By Feld erstellen, daß Dir die gewünschten Werte liefert,
aber wie schon gesagt, Du machst Dir die Performance der Datenbank damit zunichte, da für jeden Datensatz, der ausgelesen wird, gerechnet werden muß. Gruß onlinekater |
Re: Feldwert in IB Automatisch berechnen duch sp.
ja, aber was soll ich mit einem view nur für eine person aus der db?
oder kann ich das where kriterium dynamisch variieren? ich denke nicht. :-( + |
Re: Feldwert in IB Automatisch berechnen duch sp.
Zitat:
SQL-Code:
Im Programm steht dann so was :
K.NR = :PAR_KUNR
Delphi-Quellcode:
Genauso gut kann man das dynamisch erweitern bspw. so :
VkDS.ParamByName ('PAR_KUNR').AsString := edKuNr.Text;
Delphi-Quellcode:
Ja, Der View. Was soll der View ? :shock: Was soll der denn hier nützen ?
VkDs.Close;
VkDs.SelectSql.Clear; VkDs.SelectSql.Add ('Select ...'); ... if CheckBoxAlpha.checked then VkDs.SelectSql.Add ('ORDER BY NAME'); else VkDs.SelectSql.Add ('ORDER BY NR'); VkDs.Open; |
Re: Feldwert in IB Automatisch berechnen duch sp.
aha!
also mit parametern IM view ;-) ist mir neu. geil! das ist sehr gut, sehr gut... |
Re: Feldwert in IB Automatisch berechnen duch sp.
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:12 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-2025 by Thomas Breitkreuz