Hallo!
Ich habe eine schon gefüllte IB Tabelle mit einem Feld, dem über einen Generator ein Wert zugewiesen wird.
Der Generator startet bei 0 (das soll so sein !).
Der Trigger des Generators überprüft nun, ob der neue Generatorwert schon existiert, wenn ja erhöht er den Wert des Generators weiter ( immer um 1), bis keine Übereinstimmung gefunden wird, dann wird der Wert als neue ZeilenID übernommen.
In Delphi verwende ich IBDataSet, ein DBGrid (nur zur anzeige und zur auswahl des aktuellen Datensatzes) und mehrere DBEdit (zur Werteingabe der Felder des aktuellen Datensatzes)
Ich führe nun ein Dataset.Insert aus und füge Felder Daten ein. Danach führe ich ein Dataset.Post und ein Transaction.commit aus.
Das muß alles so sein!
Danach muß IBDataSet neu geöffnet werden.
Normaler weise speichere ich den Wert von DataSet.RecNo vor dem Post und setzte den alten Wert danach wieder ein, um den eingefügten Datensatz wiederzufinden.
Aber dies funktioniert nur, wenn kein Generatorwert mit im Spiel ist.
Wenn ich mit einem Generator arbeite, wird der Datensatz dort eingefügt wo der nächst freie GeneratorWert ist.
<B> ALSO: Wie kann ich diesen Datensatz wiederfinden?
Logisch währe, den Generatorwert an das Programm zu senden, aber WIE?
</B>
Ich habe eine schon gefüllte IB Tabelle mit einem Feld, dem über einen Generator ein Wert zugewiesen wird.
Der Generator startet bei 0 (das soll so sein !).
Der Trigger des Generators überprüft nun, ob der neue Generatorwert schon existiert, wenn ja erhöht er den Wert des Generators weiter ( immer um 1), bis keine Übereinstimmung gefunden wird, dann wird der Wert als neue ZeilenID übernommen.
In Delphi verwende ich IBDataSet, ein DBGrid (nur zur anzeige und zur auswahl des aktuellen Datensatzes) und mehrere DBEdit (zur Werteingabe der Felder des aktuellen Datensatzes)
Ich führe nun ein Dataset.Insert aus und füge Felder Daten ein. Danach führe ich ein Dataset.Post und ein Transaction.commit aus.
Das muß alles so sein!
Danach muß IBDataSet neu geöffnet werden.
Normaler weise speichere ich den Wert von DataSet.RecNo vor dem Post und setzte den alten Wert danach wieder ein, um den eingefügten Datensatz wiederzufinden.
Aber dies funktioniert nur, wenn kein Generatorwert mit im Spiel ist.
Wenn ich mit einem Generator arbeite, wird der Datensatz dort eingefügt wo der nächst freie GeneratorWert ist.
<B> ALSO: Wie kann ich diesen Datensatz wiederfinden?
Logisch währe, den Generatorwert an das Programm zu senden, aber WIE?
</B>
Comment