Hallo Zusammen!
Derzeit entwickle ich gerade an einer Software zur Erstellung von Mieter-Nebenkostenabrechnungen. Zunächst habe ich hierbei auf die BDE gesetzt, die jedoch in einer Vista-Umgebung alles andere als ordentlich und zuverlässig läuft. Somit habe ich den Entschluß gefaßt, die Datenbank nun auf die Embedded-Version vom Firebird umzustellen.
Leider scheitert das Ganze bei mir im Moment jedoch bereits an dem ersten Trigger, der einfach nicht "laufen" will. Eigentlich sollte hiermit ein AutoInc-Feld ID erstellt werden. Beim Einfügen neuer Datensätze auch in der IBOConsole ist das Feld ID jedoch immer NULL. Sobald ich den Datensatz abschicke, erscheint dann die Fehlermeldung, dass ID nicht NULL sein darf. Offensichtlich wird der TRIGGER auch nicht aufgerufen. Auch der Wert im GENERATOR bleibt unverändert.
Zu Testzwecken habe ich nun erstmal nur eine einzige Testtabelle angelegt (ebenfalls mit einem Generator und einem Trigger). Jedoch läuft auch hier der Trigger nicht.
Auch der Versuch, die Datenbank mit dem Interbase zu nutzen, führte zum gleichen Ergebnis.
Die Metadaten sehen wie folgt aus:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42:
| SET SQL DIALECT 3;
CREATE DOMAIN "STR10" AS VARCHAR(10); CREATE DOMAIN "STR25" AS VARCHAR(25); CREATE DOMAIN "STR250" AS VARCHAR(250); CREATE DOMAIN "STR50" AS VARCHAR(50);
CREATE TABLE "TEST" ( "ID" INTEGER NOT NULL, "NAME" STR25 , PRIMARY KEY ("ID") );
CREATE GENERATOR "GEN_OBJEKTEID"; SET TERM ^ ;
CREATE TRIGGER "TRIG_OBJEKTE" FOR "TEST" ACTIVE BEFORE INSERT POSITION 0 AS
begin new."ID" = GEN_ID (GEN_OBJEKTEID, 1); end ^
COMMIT WORK ^ SET TERM ;^
|
Vielleicht hat einer von Euch eine Idee, woran es liegen könnte.
Vielen Dank schon mal.
Christoph
Moderiert von
UGrohne: Code- durch SQL-Tags ersetzt