Hiho!
Also: Ein Generator ist ja einfach nur ein Mechanismus auf DB-Ebene, um eine Zahl zu "generieren". Da du aber zunächst nur eine Clientdatenmenge hast, die noch gar nicht zur DB wandert, wenn du nicht ApplyUpdates aufrufst, hast du logischerweise noch keine ID, wenn du die Zuweisung weiterhin per Trigger realisieren willst. Da müsstest du nach dem Posten direkt ApplyUpdate für jeden einzelnen Datensatz aufrufen.
Ich verfahre da anders. Ich erstelle auf der Interbase-DB eine Prozedur, die ich in Delphi dann per Dataset abrufen kann. Hier mal der Code:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| CREATE PROCEDURE Get_GenID( ID_ANZAHL INTEGER) RETURNS ( ID_NO INTEGER) AS BEGIN ID_NO = GEN_ID(GLB_ID_NO,ID_Anzahl); suspend; END |
Einen Generatorwert kannst du dann mit einer einfachen SQL-Abfrage abrufen:
select * from Get_GenID(1) liefert dir dann also eine neue ID (Machst du aus der 1 eine 20, erhälst du die zwanstigste GenID zurück, die erste ist dann logischerweise Wert-19. So kann man sich automatisch einen Pool an Ids reservieren).
Sobald du diesen Wert hast, musst du ihn nur noch dann in deinem Dataset in AfterInsert einfügen.
Nachtrag:
Kann es sein, daß du "Kompo" anstelle von "Kombo" meinst?
Und ich war am überlegen, wann wir über ComboBoxen gesprochen hatten...
Cu,
Udontknow