![]() |
AW: Firebird Db Trigger Problem
Kommt darauf an, ob Zeos RETURNING versteht, wenn ja:
SQL-Code:
Sonst als getrennte Abfrage.
insert into <Tabelle> ( ID, <weitere Felder>)
values ( (select gen_id( GEN_DeineTabelle_ID, 1 ) from RDB$Database), <weitere Werte>) RETURNING ID; |
IBExpert
Liste der Anhänge anzeigen (Anzahl: 1)
@Privateer3000:
Ich verwende zum Erstellen und Ändern von Firebird-Datenbank immer die Personalversion von ![]() IBExpert bietet beim Erstellen einer Tabelle die Möglichkeit, ein AutoInc-Feld zu definieren, wie in der angehängten Grafik dargestellt. Dabei kann man sich gleich automatisch den entsprechenden Trigger, den Generator und eine Prozedur generieren lassen. Die sehen dann so aus: Prozedur SP_GEN_PROJEKT_ID
Code:
Trigger PROJEKT_BI
begin
ID = gen_id(GEN_PROJEKT_ID, 1); suspend; end /* DLL */ SET TERM ^ ; CREATE OR ALTER PROCEDURE SP_GEN_PROJEKT_ID returns ( ID integer) as begin ID = gen_id(GEN_PROJEKT_ID, 1); suspend; end^ SET TERM ; ^ /* Existing privileges on this procedure */ GRANT EXECUTE ON PROCEDURE SP_GEN_PROJEKT_ID TO SYSDBA;
Code:
Generator GEN_PROJEKT_ID
as
begin if (new.IDX_PROJEKT is null) then new.IDX_PROJEKT = gen_id(GEN_PROJEKT_ID,1); end /* DLL */ /******************************************************************************/ /* Following SET SQL DIALECT is just for the Database Comparer */ /******************************************************************************/ SET SQL DIALECT 3; CREATE GENERATOR GEN_PROJEKT_ID; SET TERM ^ ; CREATE OR ALTER TRIGGER PROJEKT_BI FOR PROJEKT ACTIVE BEFORE INSERT POSITION 0 as begin if (new.IDX_PROJEKT is null) then new.IDX_PROJEKT = gen_id(GEN_PROJEKT_ID,1); end ^ SET TERM ; ^
Code:
CREATE SEQUENCE GEN_PROJEKT_ID;
ALTER SEQUENCE GEN_PROJEKT_ID RESTART WITH 1; /* Old syntax is: CREATE GENERATOR GEN_PROJEKT_ID; SET GENERATOR GEN_PROJEKT_ID TO 1; */ |
AW: Firebird Db Trigger Problem
Vielen Dank.
Ich habe mit IBExpert die Trigger ausprobiert die ich im IBEasy erstellt habe. Siehe da: sie funktionieren. Es liegt am IBEasy. Vielen Dank für den IBExpert Tipp. |
AW: Firebird Db Trigger Problem
By the Way
kann man mit Generatoren auch ein Timestamp realisieren so das beim DS erstellen ein Timestamp eingetragen wird? Grüße PS: Ich weiß offTopic, aber wollte deswegen keinen neuen Thread aufmachen |
AW: Firebird Db Trigger Problem
Zitat:
|
AW: Firebird Db Trigger Problem
Zitat:
Denn es gilt : Trigger liegt in der DB. D.h., der schlägt immer zu, egal welches Programm für die DB benutzt wird ! Also eigenes Programm, IBExpert, anderes eigenes Programm oder sonstwas. Eventuell ausser IBEasy. :P |
AW: Firebird Db Trigger Problem
Zitat:
|
AW: Firebird Db Trigger Problem
Zitat:
Direkt in den Generatorwert in dieser Syntax? |
AW: Firebird Db Trigger Problem
Zitat:
Wenn ich nur den Wert hole ohne ihn zu reservieren gehts schief. Oder liege ich da falsch... |
AW: Firebird Db Trigger Problem
Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:26 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