AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Verwenden von Triggern für Firebird 2.5 DB
Thema durchsuchen
Ansicht
Themen-Optionen

Verwenden von Triggern für Firebird 2.5 DB

Offene Frage von "hoika"
Ein Thema von Frankdarwin · begonnen am 13. Apr 2011 · letzter Beitrag vom 15. Apr 2011
Antwort Antwort
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.438 Beiträge
 
Delphi 12 Athens
 
#1

AW: Verwenden von Triggern für Firebird 2.5 DB

  Alt 13. Apr 2011, 18:55
Hallo...

2 Dinge gibt es zu beachten:
- wenn du den Trigger für eine automatisch hochzuzählende ID benutzt brauchst du einen Generator dazu. Dieser Generator stellt die ID zur Verfügung die dann in das entsprechende Feld eingetragen wird. Der Name des Generators ist frei wählbar und die Beispiele sind entsprechend anzupassen.
- der Trigger BeforeInsert muß mit dem entsprechenden Code gefüllt sein.

Wenn du einen Datensatz einfügst wird in der Regel die "erzeugte" ID nicht benötigt. Sie ist einfach eingetragen. In Ausnahmefällen braucht man die gerade eingetragene ID um evt. andere Datensätze mit dieser ID zu verknüpfen. Dafür gibt es bei FB returning

  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.277 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Verwenden von Triggern für Firebird 2.5 DB

  Alt 15. Apr 2011, 07:23
Hallo,

Zitat:
Was muss ich eigentlich in Delphi tun, damit ein Trigger aus der DB automatisch ausgeführt wird?
Die kurze Antwort ... Nichts.

Du übergibst als ID einfach 0, den Rest macht die DB.
Die Meldung "muss Wert enthalten" kommt von deiner Datenzugriffs-Schicht (also lokal).
Sie hat erkennt, dass das Feld "not null" ist, und will einen Wert haben.
Welcher das ist, ist ihr egal, der Trigger erzeugt ja eh einen anderen.

Die Sache mit dem Generator hast du ja wohl schon gemacht ?
Ohne etwas von deiner DB hier zu sehen, ist das geraten.
Unter IBExpert kannst du per Extract Metadata ja mal deine DB hier zeigen.

Unter IBPhoenix.com findest du auch Beispiele dazu.

Den erzeugten Wert Trigger-wert bekommst du über returning (wie schon weiter oben gesagt).
Ohne das returning müsstest du den Generator selber auslesen (gen_id).
Das ist aber bei FB 2.5 nicht mhr notwendig.


Heiko
Heiko
  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 02:15 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