![]() |
Datenbank: Firebird • Version: 1.5 • Zugriff über: ZEOS
Autoincrement-Wert bei Firebird
Hallo,
irgendwie komme ich mal wieder nicht weiter. Ich kenne die autoincrement-Felder eigentlich nur von MySQL-Datenbanken, bei denen bei jedem Insert automatisch der autoinc-Wert erhöht wird. Soweit mich meine Suche jetzt nicht absolut in die Irre geführt hat, ist dies bei Firebird nicht so, so dass folgender Code im Endeffekt nicht funktionieren kann:
Delphi-Quellcode:
(Zur Erläuterung: In der Tabelle gibt's neben dem Feld 'Kategorie' noch das Feld 'ID', welches automatisch erhört werden soll)
queryKategorien.SQL.Text :=
'INSERT INTO tabelle_kategorie_sub (KATEGORIE) ' + ' VALUES (' + QuotedStr(Node.Text) + ');'; queryKategorien.ExecSQL; Leider kriege ich's aber anscheinend nicht in meine alternde Murmel, wie ich denn nun den ID-Wert erhöhen kann. Ich habe zwar viel von SP gelesen und verschiedene SQL-Statements gesehen, aber das hat alles nicht geklappt. Hat jemand einen Tipp für mich? Danke und Gruß Opa |
Re: Autoincrement-Wert bei Firebird
Kombination Generator + Trigger. Welches Admintool nutzt du?
|
Re: Autoincrement-Wert bei Firebird
Hallo,
den EMS SQL Manager 2005. Die Generatoren habe ich angelegt, aber wie kann ich die auch nutzen? Gruß Opa |
Re: Autoincrement-Wert bei Firebird
Hallo Opa Knack,
anlegen...
SQL-Code:
initialisieren...
CREATE GENERATOR GEN_name
SQL-Code:
ID erzeugen...
SET GENERATOR GEN_name TO 0
SQL-Code:
Gruss
INSERT INTO tabelle (id, bezeichnung)
VALUES (gen_id(GEN_name, 1), 'Test') Thorsten |
Re: Autoincrement-Wert bei Firebird
Hallo,
Super, klappt. Danke und gute Nacht Gruß Opa |
Re: Autoincrement-Wert bei Firebird
Man kann, wie schon erwähnt, auch einen Trigger verwenden, welcher dann die werte automatisch setzt:
SQL-Code:
SET TERM !! ;
CREATE TRIGGER <TABELLE>_BI FOR <TABELLE> ACTIVE BEFORE INSERT POSITION 0 AS BEGIN IF (NEW.ID IS NULL) THEN NEW.ID = GEN_ID(GEN_<TABELLE>_ID,1); END !! SET TERM ; !! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:52 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