AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Trigger verbessern ?
Thema durchsuchen
Ansicht
Themen-Optionen

Trigger verbessern ?

Ein Thema von Gruber_Hans_12345 · begonnen am 28. Mär 2005 · letzter Beitrag vom 29. Mär 2005
Antwort Antwort
Gruber_Hans_12345

Registriert seit: 14. Aug 2004
1.426 Beiträge
 
Delphi 2007 Professional
 
#1

Trigger verbessern ?

  Alt 28. Mär 2005, 18:22
Datenbank: Firebird • Version: 1.5 • Zugriff über: IBConsole
DA ich mit Triggern noch nicht viel Erfahrung habe, möchte ich wissen, ob man folgenden Trigger noch besser machen kann :
SQL-Code:
SET TERM ^ ;
ALTER TRIGGER LB_INSERT
ACTIVE BEFORE INSERT POSITION 0
AS
DECLARE ART_EK_PREIS DOUBLE PRECISION;
BEGIN
  IF (NEW.ARTIKELID > 0) THEN BEGIN
    SELECT EK_PREIS FROM ARTIKEL WHERE ID = NEW.ARTIKELID INTO :ART_EK_PREIS;
    UPDATE ARTIKEL SET NEED_RECALC = 1 WHERE ID = NEW.ARTIKELID;
    NEW.EK_PREIS = :ART_EK_PREIS;
  END
END
^
COMMIT WORK ^
SET TERM ;^
Machen soll er folgendes : Beim Einfügen in die Lagerbuchungszeile soll aus der Artikel Tabelle der aktuelle Preis geholt werden und in die Spalte EK_PREIS gespeichert werden und im Artikel Stamm das Feld NEED_RECALC auf ein setzten.
Gruss Hans

2B or not 2B, that is FF
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Trigger verbessern ?

  Alt 28. Mär 2005, 19:59
Um ehrlich zu sein, ich habe noch nie etwas von Triggern gehört. Was ist das?
Manuel Eberl
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#3

Re: Trigger verbessern ?

  Alt 28. Mär 2005, 20:14
Zitat von 3_of_8:
Um ehrlich zu sein, ich habe noch nie etwas von Triggern gehört. Was ist das?
Neue Frage neuer Thread.

Und zu der Frage hier : wie sieht das Create Trigger Statement denn aus ?

Auf Anhieb fällt mir folgendes auf : du verwendest Double Precison. Ist das beim EK und Lagerbestand oder überhaupt nötig ? Was ist need_recalc ? Das hängt irgendwie in der Luft rum. Was soll das machen ?
Gruß
Hansa
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#4

Re: Trigger verbessern ?

  Alt 28. Mär 2005, 20:25
Zitat von Hansa:
du verwendest Double Precison. Ist das beim EK und Lagerbestand oder überhaupt nötig ?
Bezweifle ich auch.
Zitat von Hansa:
Was ist need_recalc ? Das hängt irgendwie in der Luft rum. Was soll das machen ?
Das sollte durch den Namen und die Situation, an der es gesetzt wird eigentlich klar sein.

aabeer: Den ganzen Sinn kapiere ich überhaupt nicht. Warum muss hier ein Trigger laufen? Warum muss hier ein berecheter Wert abgelegt werden?
Artikel kostet X € -> Abfrage auf den Artikel gibt dir X €. Basta!
Wenn du jetzt die X € noch irgendwo rankopierst entfernst du dich gefährlich weit von jeglicher Normalform.
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Trigger verbessern ?

  Alt 28. Mär 2005, 20:30
Zitat von Hansa:
Zitat von 3_of_8:
Um ehrlich zu sein, ich habe noch nie etwas von Triggern gehört. Was ist das?
Neue Frage neuer Thread.

Und zu der Frage hier : wie sieht das Create Trigger Statement denn aus ?

Auf Anhieb fällt mir folgendes auf : du verwendest Double Precison. Ist das beim EK und Lagerbestand oder überhaupt nötig ? Was ist need_recalc ? Das hängt irgendwie in der Luft rum. Was soll das machen ?
In anderen Foren wird das nicht so streng gesehen.
Manuel Eberl
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#6

Re: Trigger verbessern ?

  Alt 28. Mär 2005, 20:36
Zitat von 3_of_8:
In anderen Foren wird das nicht so streng gesehen.
In anderen Foren gates auch drunter und drüber.
  Mit Zitat antworten Zitat
Benutzerbild von Airblader
Airblader

Registriert seit: 29. Okt 2004
Ort: Geislingen an der Steige
742 Beiträge
 
#7

Re: Trigger verbessern ?

  Alt 28. Mär 2005, 20:37
Zitat von Robert_G:
Zitat von 3_of_8:
In anderen Foren wird das nicht so streng gesehen.
In anderen Foren gates auch drunter und drüber.
In anderen Foren ist nicht hier.
In anderen Foren gibts auch keine Osterhasi
Ingo Bürk
Es nimmt der Augenblick, was Jahre geben.

Johann Wolfgang von Goethe
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#8

Re: Trigger verbessern ?

  Alt 28. Mär 2005, 21:04
Von 7 Antworten (inkl. dieser) sind nur 2 auf das Thema gemünzt. D.h. 5 waren überflüssig. Und diese Quote ist sehr sehr schlecht und muß nicht sein. Andere Foren hin oder her. Warum soll ich denn überhaupt Antworten geben, wenn dauernd einer das eigentliche Thema kaputt redet.
Gruß
Hansa
  Mit Zitat antworten Zitat
Gruber_Hans_12345

Registriert seit: 14. Aug 2004
1.426 Beiträge
 
Delphi 2007 Professional
 
#9

Re: Trigger verbessern ?

  Alt 29. Mär 2005, 07:05
@Hansa:
NEED_RECALC gibt an, das sich die Menge am LAger geändert hat, und das sich der Durchschnitts EK_PREIS geändert hat.

Mein Create Trigger sieht eigentlich ganz gleich aus, habe nur den letzten ALTER TRIGGER reingeschrieben, den ich auch selbst verwendet habe.
SQL-Code:
SET TERM ^ ;

CREATE TRIGGER "LB_INSERT" FOR "LAGER_BUCHUNG"
ACTIVE BEFORE INSERT POSITION 0
AS
DECLARE ART_EK_PREIS DOUBLE PRECISION;
BEGIN
  IF (NEW.ARTIKELID > 0) THEN BEGIN
    SELECT EK_PREIS FROM ARTIKEL WHERE ID = NEW.ARTIKELID INTO :ART_EK_PREIS;
    UPDATE ARTIKEL SET NEED_RECALC = 1 WHERE ID = NEW.ARTIKELID;
    NEW.EK_PREIS = :ART_EK_PREIS;
  END
END
 ^

COMMIT WORK ^
SET TERM ;^
@Robert_G:
LagerStand muß (sollte) zumindest DOUBLE PRECISION da müssen relativ große Werte abgelegt werden (in Millionen Stückzahlen) aber auch Werte die mit einer Genauigkeit von 0.00001 (aber nicht beides gemeinsam)
EK_PREIS habe ich aus folgendem Punkt auch noch DP, da ich alle meine Float Felder als DP abgelegt habe, da ich sonst einfach öfters so schöne Werte wie 1.5623246E-129 anstatt von 0 bekomme (mit DP nicht)

aabeer:
Dein aabeer versteh ich nicht ganz, Bei mir ist in EK_PREIS der Druchschnittspreis der letzten Artikel die ins Lager gebucht wurden drinnen. Der ändert sich dann öfters (bei jeder zu und abbuchung vom Lager).
Gruss Hans

2B or not 2B, that is FF
  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 14:58 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