Einzelnen Beitrag anzeigen

Benutzerbild von mikhal
mikhal

Registriert seit: 11. Sep 2003
Ort: Linz am Rhein
796 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: New Record -> DBLookUpComboBox wird gelöscht....

  Alt 2. Jan 2008, 20:05
Ich kenne jetzt nicht die speziellen wwLookupComboBoxen, aber normalerweise kannst du in einer DBLookupComboBox nur Werte auswählen, die bereits in der entsprechenden Lookup-Tabelle enthalten sind.

Einen PK lasse ich grundätzlich nicht vom Benutzer eingeben, da sind Probleme vorprogrammiert. Eine PK lasse ich in Firebird prinzipiell über einen Generator füllen. Dazu gibt es verschiedene Methoden, um sicherzustellen, dass das PK-Feld garantiert gefüllt wird: über einen Trigger, bevor der Datensatz gespeichert wird, Aufruf des nächsten Generator-Wertes über GEN_ID(<GeneratorName>,<Step-Wert>) oder bei den IBDAC-Komponenten über die Properties "KeyGenerator", "KeyGields" und "GeneratorStep".

SQL-Code:
-- Beispiel für einen BeforeInsert-Trigger, generiert mit IB Expert
-- Generator GEN_ADR_ID mit einem Autowert füllen
-- zu füllendes Feld ADR_ID => PK der Tabelle ADR_ADRESSEN
CREATE OR ALTER TRIGGER ADR_ADRESSEN_BI FOR ADR_ADRESSEN
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
  IF (NEW.ADR_ID IS NULL) THEN
    NEW.ADR_ID = GEN_ID(GEN_ADR_ID,1);
END
Grüße
Mikhal
Michael Kraemer
Computer erleichtern die Arbeit...
...und die Erde ist eine Scheibe!
  Mit Zitat antworten Zitat