Einzelnen Beitrag anzeigen

Alphacodex

Registriert seit: 16. Mär 2006
65 Beiträge
 
Delphi 2006 Professional
 
#1

Problem bei Anlegen eines neuen Records

  Alt 19. Jul 2009, 12:15
Datenbank: Firebird • Version: 2.5 • Zugriff über: Interbase
Hallo,

Ich habe folgendes Problem(chen): Ich versuche aus dem Quellcode heraus per dataset.append einen neuen Record anzulegen. Das macht er auch brav und zeigt in meinem zugehörigen Grid eine neue leere Zeile an. Wenn ich jetzt hier was reinschreiben will und die Änderungen "abschicke" gibt er mir natürlich einen Fehler weil der PrimaryKey nicht NULL sein darf.

Da ich das verwalten der PrimaryKeys natürlich nicht dem Nutzer zumuten (zutrauen?) kann/will habe ich in IB Expert einen Generator für diesen PrimaryKey angelegt. Außerdem habe ich inzwischen herausgefunden, dass dieser Generator nicht so ganz automatisch werkelt sondern z.B. durch trigger gesteuert wird.

Also habe ich in meiner Tabelle noch folgenden Trigger eingebaut:
SQL-Code:
CREATE OR ALTER trigger faelle_genid for faelle
active before insert position 0
AS
BEGIN
  IF (NEW.FALLID IS NULL) THEN
    NEW.FALLID = GEN_ID(GEN_FAELLE_ID,1);
END
Der Trigger soll also bevor ein neuer Record eingetragen (oder ein alter verändert) wird sicherstellen, dass er eine neue eindeutige Primary ID erhält...


Hmmm.... geht aber nicht. Trotz des Triggers bekomme ich die Fehlermeldung, dass der PrimaryKey nicht NULL sein darf...


Jemand ne Idee??

Grüße
Codex
  Mit Zitat antworten Zitat