AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Trigger oder Events der DB-Komponenten zum Updaten von Fremdtabelle
Thema durchsuchen
Ansicht
Themen-Optionen

Trigger oder Events der DB-Komponenten zum Updaten von Fremdtabelle

Ein Thema von BlueStarHH · begonnen am 1. Jan 2018 · letzter Beitrag vom 2. Jan 2018
 
BlueStarHH

Registriert seit: 28. Mär 2005
Ort: Hamburg
855 Beiträge
 
Delphi 11 Alexandria
 
#1

Trigger oder Events der DB-Komponenten zum Updaten von Fremdtabelle

  Alt 1. Jan 2018, 16:50
Datenbank: Firebird • Version: 2.5 • Zugriff über: IBDAC
Wir stellen in 2 Niederlassungen Rechnungen aus.
In der ersten Niederlassung soll beim Einfügen/Löschen/Ändern einer Rechnungsposition in einer Lager-Tabelle der Bestand des Artikels aktualisiert werden.
In der zweiten Niederlassung ist dies nicht nötig. D.h. die Lager-Tabelle wird dort nicht benutzt.

Dazu fallen mir zwei Lösungen ein:
a) Die Rechnungspositionen-Tabelle hat mehrere Trigger (AfterInsert, AfterDelete, AfterUpdate) die, die Lager-Tabell aktualsieren. In jedem Trigger wird geprüft, ob die Lager Lager-Tabelle geändert werden soll oder nicht. Dazu wird ein Flag in einer Einstellungs-Tabelle geprüft. Das ist in der einen Niederlassung gesetzt und in der anderen Niederlassung nicht. Nachteil: In der Niederlassung, wo die Lager-Tabelle nicht genutzt werden soll, werden die Trigger ständig aufgerufen und das Flag per select abgefragt. Das bremst die DB ja aus, was nicht sein muss.

b) Statt der Trigger verwenden ich die OnAfterInsert, OnAfterDelete, OnAfterPost Events der Datenbank-Komponenten direkt im Programm-Code. Vorteil: Ich muss das Flag nicht ständig "aufwändig" mit einem select abfragen sonder kann es die ganze Programmlaufzeit in einem Boolean vorhalten. Auch können hier weitere Dinge berücksitigt werden, auf die es in den Triggern keinen Zugriff gibt (z.B. eingeloggte User). Nachteil: Wenn diese Events nicht ausgelöst werden (weil es z.B. Updates per SQL, an den Komponenten vorbei, gibt) wird die Lager-Tabelle nicht aktualisiert. Darauf muss man dann immer achten.

Welche Lösung würdet ihr nehmen und warum? Gibt es evtl. noch eine weitere Möglichkeit? Habe ich weitere Vor-/Nachteile der beiden Lösungen übersehen?

Geändert von BlueStarHH ( 1. Jan 2018 um 16:53 Uhr)
  Mit Zitat antworten Zitat
 


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 01:04 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 by Thomas Breitkreuz