AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Firebird / UniDac - Insert über Query?
Thema durchsuchen
Ansicht
Themen-Optionen

Firebird / UniDac - Insert über Query?

Ein Thema von moelski · begonnen am 9. Feb 2010 · letzter Beitrag vom 5. Apr 2010
 
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#4

Re: Firebird / UniDac - Insert über Query?

  Alt 21. Feb 2010, 07:43
Den nächsten Wert eines Triggers kannst Du mit dem folgenden SQL-Befehl Abfragen SELECT NEXT VALUE FOR <generator_name> FROM RDB$DATABASE; Im Feld Gen_ID findest Du dann den nächsten Wert vom Trigger.

Edit2 : Aber aufpassen, wenn der SELECT-Befehl ausgeführt wird, dann wird der Trigger angestossen und um eins erhöht. Ich habe dann nochmal den Befehl ALTER SEQUENCE <generator_name> RESTART WITH <ergebnis aus select - 1>; ausgeführt, damit der Trigger wieder auf dem alten Wert steht.

Eine Tabelle incl. AutoInc_Feld erstelle ich so :
SQL-Code:
CREATE TABLE Adresse (
   AutoInd INTEGER,
   Feld1 INTEGER,
   Feld2 INTEGER,
   Feld3 CHAR(50),
   Feld4 CHAR(50)
);

CREATE GENERATOR GEN_Adresse_ID;
SET TERM ^ ;

create trigger Adresse_bi for Adresse
active before insert position 0
as
begin
if (new.AutoInd is null) then
new.AutoInd = gen_id(gen_Adresse_id,1);
end
^

SET TERM ; ^

SET TERM ^ ;

create procedure sp_gen_Adresse_id
returns (AutoInd integer)
as
begin
AutoInd = gen_id(gen_Adresse_id, 1);
suspend;
end
^

SET TERM ; ^
Edit1: Fehler in den BBCodes bereinigt.
Rolf Warnecke
App4Mission
  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 16:58 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