![]() |
Datenbank: Firebird • Version: V3.0 • Zugriff über: IBDAC
Firebird - Select oder Stored procedure innerhalb eines Triggers verwenden
Hallo,
ich möchte innerhalb eines Triggers Daten aus einer anderen Tabelle verwenden, die ich zuvor über ein Select-Statement oder einer StoredProcedure abfrage. Funktioniert dieses so? Aktuell habe ich nur Zugriff auf die Felder der Tabelle selbst mit new.fieldname oder old.Fieldname |
AW: Firebird - Select oder Stored procedure innerhalb eines Triggers verwenden
Klar geht das
1. Du kannst lokale Variablen vor dem Begin des Triggers für die Felder aus der Tabelle anlegen, in denen die Ergebnisse zwischengespeichert werden z.B.
Delphi-Quellcode:
Dann kannst Du ein Select laufen lassen und die Ergebnisse in den Variablen ablegen mit einem INTO Abschnitt und einem Doppelpunkt als Präfix im SQL-Statement. Damit wählst Du aus, ob eine Variable gemeint ist (mit Doppelpunkt) oder ein gleichnamiges Feld in der Tabelle (ohne Doppelpunkt)
declare variable KEY BIGINT;
Delphi-Quellcode:
SELECT ID FROM TABLE WHERE FELD='5' INTO :KEY;
Also kein SELECT *! Und mit dem Wert in KEY kannst Du jetzt was anderes machen, z.B.
Delphi-Quellcode:
NEW.REFERENZ= KEY;
Du musst aber darauf achten, dass der SELECT nur einen Wert zurück gibt oder Du musst in einer FOR SELECT-Schleife Werte abfragen oder mit einem Cursor arbeiten, aber das sind andere Fragen. |
AW: Firebird - Select oder Stored procedure innerhalb eines Triggers verwenden
Danke, dass war der entscheidende Tipp!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:00 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