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